mysql engines
数据库事务特性:原子性 一致性 隔离性 持久性
事务开启:start transcation 回滚 rollback 提交 commit
set autocommit=ON默认会自动提交(提交的目的是将数据从内存写入到磁盘文件)
MyISIM的特点:
1.不支持事务
2.表级锁定
3.读写互相阻塞 (写入时阻塞读取 读取时阻塞写入)
4.只会缓存索引 key_buffer_size
5.读取速度较快 占用资源少
6.不支持外键约束但支持全文索引
7.是mysql5.5.5之前默认的存储引擎
MyISAM适应场景:不需要事务支持的业务 一般是读数据比较多的业务 读多或写多比较适合 并发相对低的业务 数据修改相对少的业务 对数据一致性要求不高的业务
MyISAM调优:设置合适的索引 调整读写优先级 启用延迟插入 启用缓存
Innodb的特点:
1.支持事务
2.行级锁表
3.读写阻塞与事务隔离级别相关
4.具有非常高效的缓存特性:能缓存索引 也能缓存数据
5.整个表和主键以Cluster存储 组成一棵平衡树
6.所有的secondary Index 都会保存主键信息
7.支持分区 分表
8.支持外键 对硬件要求比较高
Innodb适用场景:需要事务支持 行级锁高并发能力强 读写比较频繁的场景 数据一致性要求高 硬件资源高