摘要:
查询语句执行性能 explain 查看优化器选择的索引 explain select * from t where a between 10000 and 20000 慢日志查询语句执行时间和扫描行数 set long_query_time=0; select * from t where a be 阅读全文
摘要:
InnoDB 有两种读取数据的方式 快照读/一致性读,MVCC 当前读,获取读写锁后读取行的最新数据 InnoDB 用一致性读视图实现了 MVCC,用于支持读已提交和可重复读隔离级别的实现。 启动事务时立即创建视图 start transaction with consistent snapshot 阅读全文
摘要:
普通索引和唯一索引性能差别 查询性能 在 InnoDB 中,每个数据页的大小默认是 16KB。 查询性能差别不大。 更新性能 change buffer:当需要更新一个数据页时,如果数据页在内存中就直接更新;如果数据页不在内存中,在不影响数据一致性的前提下, InnoDB 会将这些更新操作缓存在 c 阅读全文
摘要:
InnoDB 和 MyISAM 对比 Innodb 支持崩溃恢复 InnoDB 支持事务 InnoDB 支持行锁 B+Tree 叶子节点存储内容不同 MyISAM 记录表行总数,InnoDB 没有 两阶段锁 InnoDB 读操作会使用 MVCC,而写操作会使用写锁。 InnoDB 两阶段锁协议:行锁 阅读全文
摘要:
MySQL 的锁可以分为全局表、表级表和行锁三类。 全局锁 加全局读锁,整个数据库处于只读状态,可以用于数据库备份 flush tables with read lock 利用重复读隔离级别,可以避免加全局锁 mysqldump --single-transaction 不推荐使用 set glob 阅读全文