MySQL默认存储引擎
mysql5.5.5之前是MyISAM
之后是InnoDB
InnoDB | MyISAM |
所有表都保存在同一个数据文件 | 三个存储文件,表格、数据和索引文件 |
支持外键 | |
支持事务 | |
表锁和行锁(默认行锁) | 表锁 |
select更优 | |
insert、update、delete更优 | |
count(*)更快,内部维护了一个计数器 | |
支持全文索引 | |
支持hash索引 |
修改MySQL存储引擎
-
查看Mysql存储引擎情况: mysql>show engines
-
设置InnoDB为默认引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB
-
需要重启Mysql服务器
-
mysql>show engines 如果出现 InnoDB |DEFAULT,则表示修改存储引擎成功
如何选择两个存储引擎
- 当需要使用数据库事务时,InnoDB是首选,因为支持事务
- 当在高并发的场景下,选择InnoDB,因为支持行锁,粒度小,在操作的时候不会把整张表都锁住,可以提升效率
- 如果读操作远远多于写操作并不需要事务,选择MyISAM,读操作效率高