mysql 中InnoDB和MyISAM的区别分析小结


Posted in PHP onApril 15, 2008

 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的性能优势。

PHP 相关文章推荐
如何过滤高亮显示非法字符
Oct 09 PHP
PHP PDO函数库详解
Apr 27 PHP
twig里使用js变量的方法
Feb 05 PHP
php数据访问之增删改查操作
May 09 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
php定期拉取数据对比方法实例
Sep 22 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 #PHP
php zend解密软件绿色版测试可用
Apr 14 #PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 #PHP
php5 mysql分页实例代码
Apr 10 #PHP
Smarty安装配置方法
Apr 10 #PHP
PHP程序员编程注意事项
Apr 10 #PHP
php下使用以下代码连接并测试
Apr 09 #PHP
You might like
php 判断服务器操作系统的类型
2014/02/17 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
详解flask入门模板引擎
2018/07/18 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
Python守护进程实现过程详解
2020/02/10 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
大专学生推荐信范文
2013/11/19 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
责任书范本
2014/08/25 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
停电调休通知
2015/04/16 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL