可重复读解决了哪些问题? 对 SQL 慢查询会考虑哪些优化 ?

可重复读解决了哪些问题?

(1)可重复读的核心就是一致性读(consistent read);保证多次读取同一个数据时,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据,会造成幻读。
(2)而事务更新数据的时候,只能用当前读。如果当前的记录的行锁被其他事务占用的话,就需要进入锁等待。
(3)查询只承认在事务启动前就已经提交完成的数据。
(4)可重复读解决的是重复读的问题,可重复读在快照读的情况下是不会有幻读,但当前读的时候会有幻读。

对 SQL 慢查询会考虑哪些优化 ?

(1)分析语句,是否加载了不必要的字段/数据。
(2)分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等。
(3)查看 SQL 涉及的表结构和索引信息。
(4)如果 SQL 很复杂,优化 SQL 结构。
(5)按照可能的优化点执行表结构变更、增加索引、SQL 改写等操作。
(6)查看优化后的执行时间和执行计划。
(7)如果表数据量太大,考虑分表。
(8)利用缓存,减少查询次数。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值