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 多行多列显示
Aug 15 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
php实现快速排序法函数代码
Aug 27 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
Jun 06 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 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中截取字符串支持utf-8
2007/01/18 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python实现带百分比的进度条
2016/06/28 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
python 实现视频 图像帧提取
2019/12/10 Python
Android面试题及答案
2015/09/04 面试题
程序集与命名空间有什么不同
2014/07/25 面试题
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
战友聚会邀请函
2014/01/18 职场文书
党员违纪检讨书
2014/02/18 职场文书
森林病虫害防治方案
2014/06/02 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers