MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能。
如果你足够熟悉,并且有一定工作经验后。你还可以使用阿里巴巴和网易开源出来的MySQL引擎在自己的服务器中使用。
大家在后面的一节《数据库结构定义语句》中可以学到创建表的语句。mysql在创建表的时候,可以指定对应的引擎。
在mysql命令中使用:
show engines;
可以查看到当前服务器支持的所有引擎。
我们介绍几种常用的引擎和了解几个不常用的引擎。避免未来在实际工作中看到一些引擎不知道概念。
引擎名称 | 特别 |
---|---|
MyISAM | 常用。读取效率很高的引擎 |
InnoDB | 常用。写入,支持事处等都支持 |
Archive | 不常用。归档引擎,压缩比高达1:10,用于数据归档 |
NDB | 不常用。主要在MySQL 集群服务器中使用,不做介绍 |
不支持事务,表锁(表级锁,加锁会锁住整个表),支持全文索引,操作速度快。常用于读取多的业务。
InnoDB是为处理巨大数据量时的最大性能设计。
注:
行锁:写入、更新操作的时候将这一行锁起来,不让其他人再操作了。
表锁:写入、更新操作时,将表给锁起来不让其他人再操作了。
事务:同时操作多个数据,若其中的一个数据操作失败。可回滚到操作之前。常用于银行、电商、金融等系统中。