一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。注意:不同的版本支持的引擎是有差异的。当然啦,如果你感觉自己的确技术高超,你还能够使用MySQL++来创建自己的数据库引擎,这个已经outof my knowledge,牛人可以参照MySQL++API帮助来实现。下面逐一叙述这5种引擎各自的特性:

ISAM

ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。

MyISAM

MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZETABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。

MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:在Web开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet平台提供商(InternetPresence Provider,IPP)只允许使用MyISAM格式。

HEAP

HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。

InnoDB和BerkleyDB

InnoDB和BerkleyDB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++API。在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。

认识完了这么多的引擎,我们也知道了它们应该在什么情况下拿来应急,那么接着我们就要学会如何来更换这些引擎了。

Globle:一种最简单的方法就是更改服务器配置,直接将其设置成你所需要的引擎。这个在win下通过更改服务器安装目录下的mysql.ini中的default-storage-engine项即可,也可以通过运行MySQLServer Instance Configuration Wizard做简单的设置。

PerTable:除了全局的方法外,还有一种更灵活的配置方法,那就是按表来设置引擎,这样我们就可以把那些需要用到事务处理的表设置成InnoDB,其他设置成MyISAM,将性能提升到极致,这是不是很令人兴奋呢?设置方法也比较简单:

1、你可以在CreateTable语句的最后添加扩展语句,如TYPE=MyISAM(或者ENGINE =INNODB)来指定当前标的引擎类型。也可以用Alter语句在建立表个后进行更改。当你不清楚当前数据库中各表的引擎时可以使用SHOWTABLE STATUS FROM DBname来查看。

2、使用随MySQL服务器发布同时提供的MySQL客户端来创建表,在创建时可以选择使用的存储引擎。

不同的引擎选择在不同的业务处理上,性能将有天壤之别!!

mysql的数据库引擎相关推荐

  1. 【腾讯面试题】MySQL常用数据库引擎

    MySQL常用数据库引擎 MyISAM存储引擎 InnoDB存储引擎 MEMORY存储引擎 存储引擎的选择 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SH ...

  2. mysql 修改引擎_修改MySQL的数据库引擎为INNODB的方法

    本文主要介绍了修改MySQL的数据库引擎为INNODB的方法,希望能对您有所帮助. 对于MySQL数据库,如果你要使用事务以及行级锁就必须使用INNODB引擎.如果你要使用全文索引,那必须使用myis ...

  3. MySQL常用数据库引擎

    MySQL常用数据库引擎 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SHOW VARIABLES LIKE 'storage_engine'; MyISA ...

  4. mysql数据库引擎博客_2、MySQL常见数据库引擎及比较?

    摘自: https://www.cnblogs.com/zhuifeng-mayi/p/9265075.html MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQ ...

  5. Mysql的数据库引擎 区别特点_mysql数据库存储引擎及区别

    MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERA ...

  6. mysql支持数据安全的引擎_2、MySQL常见数据库引擎及比较?

    MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: MyISAM管理非事务表.它提供高速存储和检索,以及 ...

  7. MySQL的数据库引擎介绍

    1.什么是数据库引擎 数据库引擎就是操作数据库的一段程序或程序段,用于存储.处理和保护数据的核心服务. 利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求 ...

  8. mysql之数据库引擎

    一:引擎概述 1,为什么要合理选择数据库存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功 ...

  9. mysql 的数据库引擎

    mysql 缺省情况 下数据库引擎是 MyISAM 这种数据库引擎是不支持事务的,InnoDB这种数据库引擎是支持事务的. mysql 支持的数据库引擎如下图所示: MySIAM MySQL5.0以前 ...

  10. Mysql:数据库引擎

    废话不多说,我们先看MySql 用到了那些引擎 SHOW ENGINES 直接可以看到有下面这些引擎 InnoDB,MRG_MYISAM,MEMORY,BLACKHOLE,MyISAM,CSV,ARC ...

最新文章

  1. ogg oracle to mysql_ogg oracle to mysql
  2. 最强的浏览器插件——油猴脚本
  3. 如何通过编程方式添加Native Client服务器别名
  4. [精选代码笔记]Anagram, group-anagrams, two sum
  5. 中文(英译) 爱情一句话哲理
  6. mr图像翻转的原因_MR的特殊检查脂肪抑制
  7. IOS UISwitch 组件的使用
  8. 设计灵感|如何让你的海报更吸睛?
  9. 她不讲武德,北航博士竟然把60年来的文本分类综述都整理了!!!
  10. shellcode之简单的栈溢出实验
  11. 关于Matlab取整函数round的用法
  12. 海信电视老出现android是什么意思,海信电视屏幕上显示“智能电视系统启动中,请稍后”是什么意思?怎样处理?- 一起装修网...
  13. 从OPPO TWS耳机看OPPO声学的体面回归
  14. axio get传参。
  15. (转自博客园-雲霏霏)5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task
  16. 四则运算之Right-BICEP单元测试
  17. 强化学习1 高斯赛德尔迭代
  18. docker使用docker compose file部署项目时,实现容器卷挂载,并对容器内文件夹赋予权限
  19. 飞机机身结构主要分三种,现在大部分飞机都用第三种
  20. PMP考试时间推迟了,如何办理退缓考?

热门文章

  1. 《安检违禁品图像生成与评价网络模型研究》阅读笔记
  2. Matlab:显示图像
  3. 名片管理系统--python入门项目
  4. Codeforces Round #300 E. Demiurges Play Again CF538E
  5. linux 所有命令的返回值
  6. 独家 | 唱吧部分股权被法院冻结:正筹划A股上市,已在竞争中掉队
  7. Java推箱子小游戏
  8. 键盘长按,响应非常慢,长按backspace响应慢
  9. CDO基础操作(二):用CDO进行数据切片和统计运算
  10. TMS570LS3137 FreeRTOS——创建任务