MySQL (índice, hilo innodb, gran transacción)

覆盖索引和最左前缀:
    覆盖索引,包括最左前缀方式进行优化。
    当覆盖索引生效的时候能够避免“回表查询”操作,减少了io查询的次数。当使用了覆盖索引当时候,查询当数据在叶子节点便可以读取到需要当数值,不需要继续做“回表查询”了。


索引的重建:
    在工作中发现某张表的数据量和其存储的实际数据数目不匹配,这种情况通常是因为删除了过多的数据,导致表里面的数据空洞过多占用导致的,一般会通过命令去压缩表的体积进行优化。
    可以通过执行 alter table t engine=InnoDB 这样的一条sql来重新构建整棵树从而实现索引的压缩效果。


innodb背后的线程:
    master thread:    保证数据一致性,将缓存区数据刷新到磁盘。
    io thread:        负责后台的读写,利用了AIO机制,对接收到读写请求后进行回调。
    purge thread:     页的回收,分担master thread负担。
    page clean thread:脏页数据的刷新工作,分担master thread负担。


大事务:
    大事务是操作数据多,运行时间长的事务。
    在事务执行的过程中需要堵塞容易引起主从数据同步不一致的情况发生。
    可以将大事务分解为多个小事务进行优化处理。
    在mysql的二进制日志里面,当多个会话同时访问server执行事务性sql语句的请求时候,binlog会给每个会话单独开启一个线程进行事务性sql的缓存处理。直至当相应的sql执行完毕之后再写入到binlog日志中。
    

 

Supongo que te gusta

Origin blog.csdn.net/xx897115293/article/details/108258107
Recomendado
Clasificación