MySQL(索引,innodb线程,大事务)

覆盖索引和最左前缀:
    覆盖索引,包括最左前缀方式进行优化。
    当覆盖索引生效的时候能够避免“回表查询”操作,减少了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日志中。

主从复制:
	半同步复制		
		解决主库数据丢失
		从库立即同步,将日志写入relay log之后,返ack给主库,接收到至少一个从库的ack才认为写操作成功了
	并行复制
		解决主从同步延时
		从库开多个线程,并行读取relay log中不同库的日志,然后并行存放不同库的日志,这是库级别的并行
    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值