undo log 具体怎么回滚事务,如何查询慢 SQL 产生的原因

文章目录

    • [undo log 具体怎么回滚事务 ?](#undo log 具体怎么回滚事务 ?)
    • [如何查询慢 SQL 产生的原因](#如何查询慢 SQL 产生的原因)

简单来看两个问题:

undo log 具体怎么回滚事务 ?

举个例子:

  • 对于 insert 类型的 sql,会在 undo log 中记录下方才你 insert 进来的数据的 ID,当你想roll back 时,根据 ID 完成精准的删除。
  • 对于 delete 类型的 sql,会在 undo log 中记录方才你删除的数据,当你回滚时会将删除前的数据 insert 进去。
  • 对于 update 类型的 sql,会在 undo log 中记录下修改前的数据,回滚时只需要反向update 即可。
    对于 select 类型的 sql,别费心了,select 不需要回滚。

如何查询慢 SQL 产生的原因

  • 分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等
  • 没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)。
  • 内存不足。
  • 网络速度慢。
  • 是否查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。
  • 是否返回了不必要的行和列。
  • 锁或者死锁。
  • I/O 吞吐量小,形成了瓶颈效应。
  • sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。
相关推荐
惜分飞几秒前
记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复---惜分飞
数据库·oracle
cspttty3 分钟前
2026秋招供应链分析师技能栈:SQL、Excel、BI与业务分析
数据库·sql·excel
Omics Pro25 分钟前
澳科大:自进化AI虚拟细胞
数据库·人工智能·算法·机器学习·自然语言处理
ShineWinsu26 分钟前
对于MySQL:索引的解析
linux·数据库·mysql·面试·笔试·索引·海量数据
我是苏苏30 分钟前
Redis开发09:Windows系统下主从复制的配置教程
数据库·redis·缓存
数据狐(Datafox)1 小时前
京东商品列表API接口解析(附 JSON 样例)
数据库·爬虫·json
troy12812 小时前
向量数据库选型指南:Milvus / Qdrant / Chroma / pgvector
数据库·milvus
彧azz12 小时前
Redis 全面指南:从核心概念到高可用架构实战
数据库·redis·架构
DBA小马哥13 小时前
MongoDB 数据同步怎么做?oplog、Change Streams、同步工具 4 种方案一次讲清(附踩坑清单)
数据库·mongodb