php面试题之innoDB和myisam的区别

这篇文章介绍的内容是关于php面试题八之innoDB和myisam的区别,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

八重樱:怎么从一名码农成为架构师的必看知识点:目录大全(不定期更新)​zhuanlan.zhihu.com

InnoDB:

支持事务处理等

不加锁读取

支持外键

支持行锁

不支持FULLTEXT类型的索引

不保存表的具体行数,扫描表来计算有多少行

DELETE 表时,是一行一行的删除

InnoDB 把数据和索引存放在表空间里面

跨平台可直接拷贝使用

InnoDB中必须包含AUTO_INCREMENT类型字段的索引

表格很难被压缩

MyISAM:

不支持事务,回滚将造成不完全回滚,不具有原子性

不支持外键

不支持外键

支持全文搜索

保存表的具体行数,不带where时,直接返回保存的行数

DELETE 表时,先drop表,然后重建表

MyISAM 表被存放在三个文件 。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸

跨平台很难直接拷贝

MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引

表格可以被压缩

选择:

因为MyISAM相对简单所以在效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。

如果系统读少,写多的时候,尤其是并发写入高的时候。InnoDB就是首选了。

两种类型都有自己优缺点,选择那个完全要看自己的实际类弄。

InnoDB:

支持事务处理等

不加锁读取

支持外键

支持行锁

不支持FULLTEXT类型的索引

不保存表的具体行数,扫描表来计算有多少行

DELETE 表时,是一行一行的删除

InnoDB 把数据和索引存放在表空间里面

跨平台可直接拷贝使用

InnoDB中必须包含AUTO_INCREMENT类型字段的索引

表格很难被压缩

MyISAM:

不支持事务,回滚将造成不完全回滚,不具有原子性

不支持外键

不支持外键

支持全文搜索

保存表的具体行数,不带where时,直接返回保存的行数

DELETE 表时,先drop表,然后重建表

MyISAM 表被存放在三个文件 。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸

跨平台很难直接拷贝

MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引

表格可以被压缩

选择:

因为MyISAM相对简单所以在效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。那么MyISAM最好的选择。且MyISAM恢复速度快。可直接用备份覆盖恢复。

如果系统读少,写多的时候,尤其是并发写入高的时候。InnoDB就是首选了。

两种类型都有自己优缺点,选择那个完全要看自己的实际类弄。

八重樱:怎么从一名码农成为架构师的必看知识点:目录大全(不定期更新)​zhuanlan.zhihu.com

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容