InnoDB存储引擎+显示数据库引擎
InnoDB存储引擎
- InnoDB存储引擎是MySQL的缺省引擎
- 他管理的表具有以下主要特征
- 每个InnDB表在数据库目录中以 .frm 格式文件表示
- 表空间tablespace 被用于存储表的内容
- 提供一组用来记录事务性活动的日志文件
- 用COMMIT(提交)、SAVEPOINT 及ROLLBACK(回滚)支持事务处理
- 提供全 ACID 兼容
- 在MySQL服务器崩溃后提供自动恢复
-多版本(MVCC)和行级锁定 - 支持外键及引用的完整性,包括级联删除和更新
InnoDB优点
支持事务,行级锁,外键等;这种存储引擎数据的安全得到保障
显示数据库引擎
show engines;
重点面试题:
Innodb和Myisam的区别
- myisam保存表具体行数;innodb不保存。
- myisam不支持外键;Innodb支持外键。
- myisam使用非聚集索引,索引和数据分开,只缓存索引;innodb使用聚集索引,索引和数据存在一个文件。
- myisam是默认表类型不是事物安全的;innodb支持事物。
- myisam在磁盘上存储上有三个文件.frm(存储表定义) .myd(存储表数据) .myi(存储表索引);innodb磁盘上存储的是表空间数据文件和日志文件,innodb表大小只受限于操作系统大小。
- myisam支持表级锁(不支持高并发,以读为主);innodb支持行锁(共享锁,排它锁,意向锁),粒度更小,但是在执行不能确定扫描范围的sql语句时,innodb同样会锁全表。
- 执行大量select,myisam是最好的选择;执行大量的update和insert最好用innodb。
解决方案:
修改在配置文件中配置只读和修改默认存储引擎,重新启动mysql。
default-storage-engine=MYISAM
read_only=on
super_read_only=on