MySQL存储引擎
相关配置命令
-- 查看支持的存储引擎
SHOW ENGINES;
-- 查看默认存储引擎
SHOW VARIABLES LIKE 'storage_engine';
-- 准确查看某个数据库中的某一表所使用的存储引擎
SHOW TABLE STATUS LIKE 'tablename';
-- 修改表引擎
-- 在mysql.ini中default-storage-engine=InnoDB
-- 在建表时指定存储引擎 create table tablename()engin=InnoDB;
-- 建表后修改存储引擎ALTER TABLE 'tablename' ENGINE = INNODB
-- 案例
SHOW TABLE STATUS LIKE 'user';
SHOW TABLE STATUS FROM mybatis WHERE NAME = 'user';
InnoDB是一个事务型的的存储引擎,有行级锁定和外键约束。InnoDB会在内存中建立缓冲出,用于缓存数据和索引。
InnoDB和MyISAM存储引擎比较
对比项 | MyISAM | InnoDB |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 | 行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真是数据,对内存要求比较高,而且内存大小对性能有决定性的影响 |
表空间 | 小 | 大 |
关注点 | 性能 | 事务 |