admin管理员组文章数量:1582018
1.MYSQL的搜索引擎
查看存储引擎的方法:
使用命令 show engines,可以得到以下结果
图中的结果就是mysql的所有搜索(存储)引擎;关于这几种搜索引擎的简介可以看Mysql搜索引擎总结
这位博主的文章,他写的很详细了。接下来本文只对InnoDB和MyISAM这两种常用的引擎进行对比。
2.InnoDB与MyISAM对比
首先需要了解的是,mysql5.1以前默认的存储引擎是MyISAM,5.1及以后默认使用的是InnoDB。根据mysql版本和需要可以手动修改存储引擎;当然,可以给不同表使用不同的存储引擎。
现将两者对比如下:
1)InnoDB是事务性存储引擎 而 MyISAM不支持事务(需要考虑ACID时选择前者)
2)InnoDB支持外键 而 MyISAM不支持外键 (但在现实项目中,外键基本不需要)
3)两者采用的索引结构都是B+ Tree,但叶子节点存放的数据不同:
InnoDB的B+Tree存放主键+其他字段数据 or 其他字段数据+ 主键指针(InnoDB的B+Tree索引两种形态);
MyISAM存放指向数据的指针(该引擎的表是堆表,存放会有三个文件。内容分别为表定义,表数据,表索引);
因此MyISAM所需内存比InnoDB少(InnoDB索引结构中有数据块)。
4)InnoDB支持行锁,做update+insert快(主要是更新),MyISAM做select+insert快(主要是查询)。尤其是count(*)时(没有where)MyISAM不用遍历表。
版权声明:本文标题:MYSQL的数据库存储引擎 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726552913a1075196.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论