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 相关文章推荐
如何使用PHP中的字符串函数
Oct 09 PHP
用PHP实现验证码功能
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
Jul 25 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
PHP的自定义模板引擎
Mar 24 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
PHP面向对象概念
2011/11/06 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
javascript每日必学之继承
2016/02/23 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
Python算法之图的遍历
2017/11/16 Python
Python装饰器用法示例小结
2018/02/11 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
python绘制热力图heatmap
2020/03/23 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
金融专业个人的自我评价
2013/10/18 职场文书
爱护公物标语
2014/06/24 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
护士年终考核评语
2014/12/31 职场文书
史上最牛的辞职信
2015/02/28 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android