二狗子

MySQL的相关知识点记录

2020-06-09 · 2 min read
MySQL

引擎

MySQL的引擎一般分为两种

  • MyISAM
  • InnoDB

MyISAM

优点

系统兼容性好拥有较优秀的插入、查询速度,。使用表格锁定的机制,来优化多个并发的读写操作。支持索引、字段管理

缺点

不支持事务,不支持行锁、外键。如果数据库insert和update的操作比较多的话采用表锁效率低(建议使用innodb)、不能在表损坏后恢复数据

使用场景

想得到更好的系统兼容性,很高效的查询速度。但是不支持事务、外键、如果更新表较多的话对效率也会有影响。

InnoDB

优点

目前是MySQL的默认引擎,特点是支持事务,支持行锁和外键

缺点

不支持全文索引、启动慢、不会保存表的行数、当进行Select count(*) from table指令的时候,需要进行扫描全表。所以当需要使用数据库的事务时,该引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。所以在并发度较高的场景下使用会提升效率的。

使用场景

如果要提供提交、回滚、崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择

特点 MyISAM InnoDB
事务 不支持 支持
行级锁 不支持 支持
外键 不支持 支持
全文索引 支持 不支持