您现于de位置乃:亚博 > Mysql

亚博 2020-03-03 Mysql 217

Myisam和Innodbde区别

1 MyISAM:默认表类型 它乃基于传统deISAM类型 它乃存储记录和文件de标准方法.不乃事务安全de 而且不支持外键 如果执行大量deselect insert MyISAM比较适合.

2 InnoDB:支持事务安全de引擎 支持外键 行锁 事务乃他de好的特点.如果有大量deupdate和insert 建议使用InnoDB 特别乃针对多个并发和QPS较高de情况.

于app开发环境下测试

插入:MyISAMde速度比InnoDB快上1倍左右

更新:MyISAMde速度比InnoDB快1些

查询:MyISAMde速度比InnoDB慢1些


1 myisam只支持表级锁 Innodb支持行级锁

2 myisam不支持事务 Innodb支持事务

3 myisam不支持外键 Innodb支持外键

4 myisam支持全文索引 Innodb不支持

5 myisam本身存储了表de总数据行 Innodb没有存储 查总行数myisam更快 如果加了查询条件两者就没有区别了


Myisam和Innodb究竟该怎么选择

数据库有外键吗?

需要事务支持吗?

需要全文索引吗?


Innodbde行锁模式有以下几种:共享锁 排他锁 意向共享锁(表锁) 意向排他锁(表锁) 间隙锁.

注意:当语句没有使用索引 innodb不能确定操作de行 这个时候就使用de意向锁 也就乃表锁


聚簇索引和非聚簇索引


聚簇索引主要应用于Innodb

非聚簇索引主要应用于Myisam

表数据按照索引de顺序来存储de 也就乃说索引项de顺序与表中记录de物理顺序1致.对于聚集索引 叶子结点即存储了真实de数据行 不再有另外单独de数据页. 于1张表上最多只能创建1个聚集索引 因为真实数据de物理顺序只能有1种.

非聚集索引.表数据存储顺序与索引顺序无关.对于非聚集索引 叶结点包含索引字段值及指向数据页数据行de逻辑指针 其行数量与数据表行数据量1致.


评论