MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。
以下是一些细节和具体实现的差别:
1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
mysql 中InnoDB和MyISAM的区别分析小结
2019-10-28 13:34mysql教程网 Mysql
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持
延伸 · 阅读
- 2019-10-29Mysql中limit的用法方法详解与注意事项
- 2019-10-29php 随机记录mysql rand()造成CPU 100%的解决办法
- 2019-10-28Nginx实现异步访问mysql的配置方法
- 2019-10-27java实现插入mysql二进制文件,blob类型,遇到问题
- 2019-10-27Mysql my.ini 配置文件详解
- 2019-10-27mysql 存储过程的问题
精彩推荐
- Mysql
mysql 性能的检查和调优方法
我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。 ...
- Mysql
MySQL普通索引和唯一索引的深入讲解
这篇文章主要给大家介绍了关于MySQL普通索引和唯一索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...
- Mysql
mysql存储过程基础之遍历多表记录后插入第三方表中详解
这篇文章主要给大家介绍了关于mysql存储过程教程之遍历多表记录后插入第三方表中的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工...
- Mysql
Windows下mysql 8.0.11 安装教程
这篇文章主要为大家详细介绍了Windows下mysql 8.0.11安装教程 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...
- Mysql
实例讲解MySQL中乐观锁和悲观锁
在本篇文章里我们通过实例总结了关于MySQL中乐观锁和悲观锁区别的知识点,有兴趣的读者们学习下。...
- Mysql
MySQL8下忘记密码后重置密码的办法(MySQL老方法不灵了)
这篇文章主要介绍了MySQL8下忘记密码后重置密码的办法,MySQL的密码是存放在user表里面的,修改密码其实就是修改表中记录,重置的思路是是想办法不用密码...
- Mysql
升级到MySQL5.7后开发不得不注意的一些坑
这篇文章主要给大家介绍了关于升级到MySQL5.7后开发不得不注意的一些坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习...
- Mysql
MySQL的语法及其使用指南
数据库的选取,创建,丢弃和变更 数据表和索引的创建,变更和丢弃从数据表检索信息 ...