今天开始MySQL的内容,先从最简单的搜索引擎开始,先对比最常用的两种搜索引擎:MyISAM和InnoDB。
属性 | MyISAM | InnoDB |
默认引擎 | MySQL 5.5之前的默认引擎 | MySQL 5.5之后的默认引擎 |
存储文件构成 |
1、.frm存储表的结构 2、.MYD存储表的数据 3、.MYI存储表的索引 |
1、.frm存储表的结构 2、.ibd存储表的索引和数据 |
事务 | 不支持事务,不可以回滚 | 支持事务,可以回滚 |
外键 | 不支持 | 支持 |
锁的级别 | 表锁 |
行锁 也不是绝对的行锁。当不确定扫描的行数时,会使用表锁。 例如:select * from table where name like ‘zhang%‘ |
count(*)操作 | 内部维护了一个计数器,所以进行count(*)操作的时候速度很快,是直接调取结果,无需进行全表扫描 | 由于没有保存表的行数,所以当进行count(*)操作的时候,会随着数据量的增加而增加 |
select | 快 | 慢 |
insert | 慢 | 快 |
update | 慢 | 快 |
delete清空整张表 |
快 会重建表,速度快 |
慢 一行一行删除,效率很低 |
缓存 |
缓存的是索引,不是数据 |
缓存的是数据 服务器内存越大,发挥的优势越大 |