继续潜水

导航

 

 

区别   innoDB  MyISAM

mysql版本对存储引擎

5.5之后 5.5之前
索引

聚集索引
聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。
主键索引:以主键索引到整条记录(图1)
辅助索引:以另一字段索引到主键(图2)

非聚集索引
非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
主键索引:以关键字索引到记录的地址(图3)
辅助索引:以某字段索引到记录地址(图4)

 锁  提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs),另外,InnoDB 表的行锁也不是绝对的,如果在执行一个 SQL 语句时 MySQL 不能确定要扫描的范围,InnoDB 表同样会锁全表, 例如 update table set num=1 where name like "%aaa%"  只支持表级锁
 事务  支持事务  不支持事务
 外键  支持外键  不支持外键
 数据库文件 innodb属于索引组织表,innodb有两种存储方式,共享表空间存储和多表空间存储,两种存储方式的表结构和myisam一样,以表名开头,扩展名是.frm。  myisam属于堆表myisam在磁盘存储上有三个文件,每个文件名以表名开头,扩展名指出文件类型。1:.frm 用于存储表的定义2:.MYD 用于存放数据3:.MYI 用于存放表索引。myisam表还支持三种不同的存储格式:1:静态表(默认,但是注意数据末尾不能有空格,会被去掉)2:动态表3:压缩表
 AUTO_INCREMENT  如果你为一个表指定 AUTO_INCREMENT 列,在数据词典里的 InnoDB 表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上.关于该计算器的算法实现,请搜索AUTO_INCREMENT 列在 InnoDB 里如何工作。  每表一个 AUTO_INCREMEN列的内部处理。MyISAM 为 INSERT 和 UPDATE 操作自动更新这一列。这使得 AUTO_INCREMENT  列更快(至少10%)。在序列顶的值被删除之后就不能再利用(当 AUTO_INCREMENT 列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。AUTO_INCREMENT 值可用 ALTERTABLE 或 myisamch 来重置对于 AUTO_INCREMENT 类型的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中,可以和其他字段一起建立联合索引更好和更快的 auto_increment 处理
 主键  innodb引擎如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),innodb的数据是主索引的一部分,附加索引保存的是主索引的值。  myisam允许没有任何索引和主键的表存在,myisam的索引都是保存行的地址。
 统计条数  没有保存表的总行数,如果使用select count(*) from table;就会遍历整个表,消耗相当大  保存有表的总行数,如果select count(*) from table;会直接取出出该值
 全文索引  不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。(sphinx   是一个开源软件,提供多种语言的API接口,可以优化mysql的各种查询) 支持 FULLTEXT类型的全文索引
 索引保存位置  innodb的索引和数据一起保存在表空间里。  myisam的索引以表名+.MYI文件分别保存。
 SELECT UPDATE INSERT Delete操作  如果执行大量的 SELECT,MyISAM 是更好的选择  1.如果你的数据执行大量的 INSERT 或 UPDATE,出于性能方面的考虑,应该使用 InnoDB 表。2.DELETE FROM table时,InnoDB 不会重新建立表,而是一行一行的删除。3.LOAD TABLE FROM MASTER 操作对 InnoDB 是不起作用的,解决方法是首先把 InnoDB 表改成 MyISAM 表,导入数据后再改成 InnoDB 表,但是对于使用的额外的 InnoDB 特性(例如外键)的表不适用。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图1

 

 

 图2

 

 

图3

 

 

 

图4

 

 

 

参考:https://www.cnblogs.com/y-rong/p/8110596.html

参考:https://www.guhei.net/post/jb3076

posted on 2020-09-21 12:07  继续潜水  阅读(97)  评论(0编辑  收藏  举报