mysql存储引擎

Mysql提供了多个不同的存储引擎,包括处理事务安全和处理非事务安全的引擎。在整个服务器中不需要使用同一种存储引擎。

Mysql5.5以后默认使用InnoDB存储引擎,之前默认引擎是MyISAM。

MyISAM

不支持事务,不支持外键,访问速度快,以SELECT为主的应用可以使用这个引擎创建表。

InnoDB

支持事务,写的处理效率差一些,会占用更多的磁盘空间以保留数据和索引。支持行级锁。Mysq支持外键的引擎只有InnoDB,创建索引时,父子表必须有对应的索引。

InnoDB和MyISAM区别

InnoDB不保存表的具体行数,执行count(*)时需要扫描全表,而MYISAM用一个变量保存整个表的行数,执行count(*)时只需读出变量即可。

InnoDB的最小锁粒度是行锁,MyISAM最小锁粒度是表锁,一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞。

MYISAM支持全文(FULLTEXT)索引,InnoDB不支持,可以使用插件sphin支持全文索引。

MyISAM允许没有任何索引和主键的表存在,索引都是保存行的地址。InnoDB如果没有设定主键或非空唯一索引,会自动生成一个6字节的主键(用户不可见),数据是主索引的一部分,附件索引保存的是主索引的值。

 

 

 索引结构:https://blog.csdn.net/qq_35642036/article/details/82820178

posted @ 2021-09-16 14:21  Dream's  阅读(23)  评论(0编辑  收藏  举报