InnoDB与Myisam的六大区别

MyISAM   InnoDB
  构成上的区别:   每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。

.frm文件存储表定义。

数据文件的扩展名为.MYD (MYData)。

索引文件的扩展名是.MYI (MYIndex)。

  基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
  
  事务处理上方面:   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持   InnoDB提供事务支持事务,外部键等高级数据库功能
  SELECT   UPDATE,INSERTDelete操作
  
  如果执行大量的SELECT,MyISAM是更好的选择   1.如果你的数据执行大量的INSERTUPDATE,出于性能方面的考虑,应该使用InnoDB表

2.DELETE   FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

3.LOAD   TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用

  AUTO_INCREMENT的操作   每表一个AUTO_INCREMEN列的内部处理。

MyISAMINSERTUPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。

AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置

对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引

更好和更快的auto_increment处理

  如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。

自动增长计数器仅被存储在主内存中,而不是存在磁盘上

关于该计算器的算法实现,请参考

AUTO_INCREMENT列在InnoDB里如何工作

  表的具体行数
  
  select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含   where条件时,两种表的操作是一样的   InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行
  
  
  表锁   提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in
   SELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表, 例如update table set num=1 where name like “%aaa%”

转载于:https://www.cnblogs.com/wicub/p/5291631.html

MySql数据库表类型MYISAM与InnoDB的区别相关推荐

  1. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  2. mysql myisam 支持事务吗_第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)...

    mysql表类型MyISAM和InnoDB区别 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问 ...

  3. MySQL数据库中的MyISAM和InnoDB存储引擎对比

    一.InnoDB和MylSAM存储引擎对比 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访 ...

  4. mysql数据库表类型设置_mysql数据库表的类型介绍

    目录 前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的 ...

  5. unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地

    # Mysql数据库表引擎与字符集 ![](./imgs/752951346A5F4E7EBDE362FA97107707.png) ### 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是 ...

  6. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  7. MySQL存储引擎中MyISAM和InnoDB区别

    转载自  MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...

  8. 7.Mysql数据库表引擎与字符集

    7.Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送 一段文本(MySQL语句),服务器进 ...

  9. MySQL的表类型和存储引擎

    MySQL的表类型由存储引擎(Storage Engines)决定,类型包括MyISAM.innoDB.BDB等. 常用的存储引擎 MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.IS ...

最新文章

  1. 刚刚,蚂蚁金服荣膺“中国金融大数据领军企业”称号
  2. python输出键值列表_Python 键值分组或分区数据
  3. DCMTK:OFOptional的单元测试
  4. 【图像超分辨率】Perceptual Losses for Real-Time Style Transfer and Super-Resolution
  5. 用了都说好的SCI在线绘图工具来了~~~~~~~
  6. Linux系统编程3:基础篇之详解Linux软件包管理器yum
  7. MAC下MySQL启动不了怎么办?
  8. 基于scikit-learn的SVM实战
  9. VS2008下改变项目的默认属性
  10. python多态_python 多继承及多态
  11. 死磕 Framework准没错,大把的高薪岗位等着你~
  12. 建服务器数据中心,如何构建一个服务器数据中心
  13. 多旋翼无人机技术详解
  14. [转]网易新闻客户端为什么开始在北京市区的地铁、公交站牌大批量投放广告?...
  15. idea如何全局搜索关键字_IntelliJ 的搜索和全局搜索怎么用
  16. 分享个md生成思维导图的在线工具
  17. TFTP文件传输协议
  18. java gbk转机内码_Java实现的UTF-8,GBK,Unicode编码相互转换的代码
  19. 典型相关分析介绍及python实现
  20. 【BZOJ4455】【UOJ185】【ZJOI2016】小星星(树形DP,容斥原理)

热门文章

  1. 内部类详解————匿名内部类
  2. oracle用户密码复杂度查询,11gR2 Database用户密码复杂度验证
  3. cmd查询Oracle中的表 成表格显示,oracle如何通过cmd导出某个用户下的所有表
  4. Java反射 Constructor类
  5. eclipse run on server 点不了finish_分享点经验 | springboot入门及编码
  6. 摄像头夜间拍摄画面有拖影_让客厅秒变健身房,OPPO智能电视R1+摄像头上手体验...
  7. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
  8. java在原数组中追加一个元素
  9. 填充table_Excel Power Query | 向下填充的逆过程
  10. mirna富集分析_经验之谈丨生信分析文章套路原来这么简单!