阅读了一些innodb存储引擎的知识,这里做一些记录。
Innodb存储引擎
特点
支持ACID事务,行锁,不支持全文索引,支持外键,支持MVCC。
采用B+树实现,索引与数据存储在同一文件中。
后台线程
master thread;
i/o threads: read threads, write threads, log thread, insert buffer thread.
错误监控 thread;
lock监控 thread;
内存区域
数据缓冲区;重做日志缓冲区;额外内存区;
关键特性
Insert buffer:解决非聚集索引插入多次的离散型,相当一种缓冲,提高性能
两次写:防止单次的部分写失败问题,提高可靠性
自适应hash索引:对一些使用次数比较多的查询或数据建立hash索引。
常用命令
show engine innodb status;
隔离级别
读未提交:并发的事务回滚时出现脏读现象
读已提交:解决脏读,但另外一个事务提交,本事务再执行就会出现不可重复读
可重复读:解决不可重复读,对读出来的数据加锁,别的事务不许修改;但别的事务可以添加记录;导致本事务再读时数据不对了,就是幻读
串行序列化:ok
Innodb存储引擎默认是可重复读