当前位置: 首页 > news >正文

数据库篇--八股文学习第十七天| 什么是慢查询?原因是什么?可以怎么优化?;undo log、redo log、binlog 有什么用?

1、什么是慢查询?原因是什么?可以怎么优化?

答:

数据库查询的执行时间超过指定的超时时间时,就被称为慢查询。

原因:

  • 查询语句比较复杂:查询涉及多个表,包含复杂的连接和子查询,可能导致执行时间较长。
  • 查询数据量大:当查询的数据量庞大时,即使查询本身并不复杂,也可能导致较长的执行时间。
  • 缺少索引:如果查询的表没有合适的索引,需要遍历整张表才能找到结果,查询速度较慢。
  • 数据库设计不合理:数据库表设计庞大,查询时可能需要较多时间。
  • 并发冲突:当多个查询同时访问相同的资源时,可能发生并发冲突,导致查询变慢。
  • 硬件资源不足:如果MySQL服务器上同时运行了太多的查询,会导致服务器负载过高,从而导致查询变慢

优化:

  1. 运行语句,找到慢查询的sql
  2. 查询区分度最高的字段
  3. explain:显示mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引、写出更优化的查询语句
  4. order by limit形式的sql语句,让排序的表优先查
  5. 考虑建立索引原则

2、undo log、redo log、binlog 有什么用?

答:

  • undo logInnodb存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和MVCC
  • redo log是物理日志,记录了某个数据页做了什么修改,每当执行一个事务就会产生一条或者多条物理日志。
  • binlog (归档日志)是Server 层生成的日志,主要用于数据备份和主从复制。
http://www.lryc.cn/news/419874.html

相关文章:

  • 插件、cookie存储,json,ajax详解
  • 快速上手Spring Boot
  • 思路超清晰的 LVS-NAT 模式实验部署
  • Android实时通信:WebSocket与WebRTC的应用与优化
  • 力扣刷题之3131.找出与数组相加的整数I
  • 非线性表之堆的实际应用和二叉树的遍历
  • os.path库学习之splitext函数
  • Python知识点:如何使用Sqlmap进行SQL注入测试
  • Android Gradle开发与应用 (一) : Gradle基础
  • Linux驱动开发—设备树分析:GPIO,中断,时钟信息,CPU信息
  • Java全栈解密:从JVM内存管理到Spring框架,揭秘垃圾回收、类加载机制与Web开发精髓的全方位旅程
  • 【探索Linux】P.46(高级IO —— 五种IO模型简介 | IO重要概念)
  • 【MongoDB 】MongoDB 介绍及应用,设计到4个案例
  • AI浪潮下的程序员生存指南:如何在智能时代锻造不可替代的核心竞争力
  • Journyx soap_cgi.pyc接口XML外部实体注入漏洞复现 [附POC]
  • vue 日期控件 100天内的时间禁用不允许选择
  • 服务器HTTP响应头安全性优化与漏洞修复方案
  • 4.定时器(TIMER)
  • java springboot mqtt控制海康摄像头
  • AI大模型02:Prompt Engineering 提示工程
  • EasyExcel动态表头导出
  • 可视化基础的设计四大原则
  • MySQL基础练习题27-上升的温度
  • 只出现一次的数字 II
  • 第十一章 数据仓库和商务智能 10分
  • 一篇文章带你解析完整数据结构-----满满干活值得收藏
  • 11.3 用Python处理常见文件
  • Linux知识复习第2期
  • 驗證HTTP代理的有效性的方法和步驟-okeyproxy
  • Java和kotlin 反射机制