Inno DB与MyIsam数据库存储引擎区别

来源:互联网 发布:淘宝卖衣服需要证吗 编辑:程序博客网 时间:2024/06/05 09:39

1.InnoDB是由芬兰InnoDB Oy公司开发的存储引擎

(1).如果数据库奔溃,它使用日志来恢复,不需要完全重建索引或表-只需要要通过日志恢复到一个点

(2).InnoDB默认数据与索引是存储在一个文件中的,也可以 通过配置,存储到不同文件中

(3).物理上以主键顺序来存储数据,支持聚集索引

(4).读取和写入缓存操作,都是通过自己的函数,不是通过操作系统

(5).他支持原始磁盘分区,说明可以有一个内部格式的磁盘分区,磁盘分区作用类似表空间自身作用

(6).支持ACID兼容事物处理

(7).支持行级别锁定,但是如果不确定行扫描范围,会锁定整个表,例如:update tableName set id=3 where name like "%abc%";

select时不会锁定读取操作

(8).支持外键,一个外键是一个对表的索引,引用另外一个表的主键或唯一键,确定插入引用表的数据指向的索引,在被引用表中存在

(9).不支持FULLTEXT索引

(10).不保存表的具体行数,执行select count(*) from tableName时;InnoDB扫描整个表,但是MyIsam保存具体行数,但是select count(*) from tableName where id='1'时,InnoDB与MyIsam都要扫描整个表

(11).对应AUTO_INCREMENT字段,必须有索引,但是MyIsam可以与其他字段 建立联合索引

(12).Delete  from tableName;不会重新建立表,而是一行行的删除

(13).Load tableName from Master操作,不适用InnoDB,解决方案:把InnoDB表改成MyIsam表,导入数据后,再改成InnoDB表,但是有外键的InnoDB表不适用

(14).是事物安全的,默认打开AutoCommit, 如果执行一条sql,就自动提交,影响性能;如果执行sql前调用begin,再插入多条sql语句,再手动commit,性能更好


2.MyIsam是由IBM开发的,基于Isam,Index Sequence access Method(索引顺序访问方法),是存储文件和记录标准方法,与其他存储引擎相比,具有修复和检查表格大多数工具,

MyIsam表格支持压缩 ,如果执行大量Select操作,MyIsam是更好选择支持全文检索

不支持事物安全,不支持外键





0 0