Mysql数据库引擎

MySQL默认存储引擎的变迁数据库

在MySQL 5.1以前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5以后的版本中,默认的搜索引擎变动为InnoDB。性能

 

MyIASM引擎搜索引擎

  1.写入操做是锁住全表支持数据库事务、也支持外键。  url

  2.MyISAM会保存好具体的行数
spa

   3.MyISAM使用的所有都是非汇集索引,能够不定义“主键”操作系统

    4.MyISAM中的索引为B-Tree结构.net

InnoDB引擎日志

 1.提供了“行锁”、支持数据库事务、提供了外键服务blog

  注意:“行锁”的使用是有条件的,即where 查询的关键字必定被上了索引,且必定要明确(不能用模糊查询)。索引

      若是不知足,这两个条件InnoDB仍是会锁住全表。

 2.Innodb不会保存行数,使用count(*)时,会搜索全表。

   3.Innodb由汇集索引和辅助索引(非汇集索引)构成,但必须有一个汇集索引,且默认与主键绑定。

    建表的时候能够不显示的指定主键,可是则MySQL系统会自动选择一个能够惟一标识数据记录的列做为主键,

    若是不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段做为主键,这个字段长度为6个字节,类型为长整形。

  4.Innodb的汇集(主键)索引为B+Tree,其他为B-Tree

 

MyISAM与InnoDB构成上的区别

(1)每一个MyISAM在磁盘上存储成三个文件:

第一个文件的名字以表的名字开始,扩展名指出文件类型,.frm文件存储表定义。 
第二个文件是数据文件,其扩展名为.MYD (MYData)。 
第三个文件是索引文件,其扩展名是.MYI (MYIndex)。

(2)基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操做系统文件的大小,通常为 2GB

 

适用场景:

  MyISAM适合: 
  (1)作不少count 的计算; 
  (2)插入不频繁,查询很是频繁,若是执行大量的SELECT,MyISAM是更好的选择; 
  (3)没有事务。

  InnoDB适合: 
  (1)可靠性要求比较高,或者要求事务; 
  (2)表更新和查询都至关的频繁,而且表锁定的机会比较大的状况指定数据引擎的建立; 
  (3)若是你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表; 
  (4)DELETE FROM table时,InnoDB不会从新创建表,而是一行一行的 删除; 
  (5)LOAD TABLE FROM MASTER操做对InnoDB是不起做用的,解决方法是首先把InnoDB表改为MyISAM表,导入数据后再改为InnoDB表,可是对于使用的额外的InnoDB特性(例如外键)的表不适用。

 

参考网址:https://blog.csdn.net/xlgen157387/article/details/68978320#commentBox

相关文章
相关标签/搜索