首页 > 数据库 >通常SQL调优过程

通常SQL调优过程

时间:2023-05-04 16:13:32浏览次数:25  
标签:show explain 查询 调优 通常 SQL 服务器

  • 观察,至少跑1天,看看生产的慢SQL情况。
  • 开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来。
  • explain + 慢SQL分析。
  • show profile。
  • 运维经理 or DBA,进行SQL数据库服务器的参数调优。
    总结:
    1、慢查询的开启并捕获
    2、explain + 慢SQL分析
    3、show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况
    4、SQL数据库服务器的参数调优

    ps:分析具体细节还得看SQL,包括但不限于

  • join时用小表驱动大表,

  • 查询时不用*用具体字段名,

  • 能用连接不用子查询,

  • 千万级分页使用limit,

  • 经常使用的查询可以开启缓存等等

标签:show,explain,查询,调优,通常,SQL,服务器
From: https://www.cnblogs.com/wanbiao/p/17371540.html

相关文章

  • mysql - shell 执行 sql 文件有中文乱码-解决
    1.背景执行  发现部分中文乱码2.解决在执行sql语句之前,加入下面指令即可SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0; ......
  • 学习使用benchmarksql压测数据库
    介绍benchmarksql是一款符合TPC-C基准压力测试工具,TPC-C是衡量在线事务处理的基准。TPC-C模型是模拟一个商品批发公司的销售模型,这个模型涵盖了一个批发公司面向客户对一系列商品进行销售的过程,这包括管理订单,管理库存,管理账号收支等操作。这些操作涉及到仓库、商品、客户、订单......
  • SQLServer配置远程访问连接
    打开对象资源管理器,右击,选择属性然后,开启-->程序-->MicrosoftSQLServer2019-->配置管理器:要确保CP/IP协议被开启了。右击,选中属性。点击IP地址标签,找到IPAII部分。如果TCP动态端口这一栏的值为0,表示sqlserver数据库引擎是监听在动态端口上,删除0,并将TCP动态端口设置成空白、......
  • pgsql查询优化
    1、大表不做数据转换 假设a表是大表,b表是小表a.id=cast(b.idasvarchar)2、distinct导致没用上索引 删除distinct 3、exists 查询语句,关联大表,但查询字段有不需要用到这个大表 解决:把join去掉,改为exist,这样可以把记录数降下来selecta.id,a.namefroma......
  • 使用TPC-H 进行GreatSQL并行查询测试
    准备工作数据库版本GreatSQL-8.0.25-17生成数据使用TPC-H生成数据#TPC-HPopulationGenerator(Version3.0.0)#生成10G的数据$./dbgen-vf-s10修改my.cnfvim/etc/my.cnf#设置IPB为8Ginnodb_buffer_pool_size=8G#设置并行查询的使用最大内存(此处为8G,根......
  • MySQL 8.0半同步复制-net_flush()失败
    MySQL8.0.26做的增强半同步复制,log-error日志中出现如下报错:2021-12-28T14:04:24.663005+08:0011[ERROR][MY-011161][Repl]Semi-syncmasterfailedonnet_flush()beforewaitingforreplicareply.2021-12-28T14:51:49.217811+08:00413824[ERROR][MY-011161][Repl......
  • 《asyncio 系列》5. 基于 asyncio + SQLAlchemy 并发请求数据库
    楔子上一篇文章探讨了使用aiohttp库发出非阻塞Web请求,还讨论了使用几种不同的异步API来同时运行这些请求。通过结合asyncioAPI和aiohttp库,可以同时运行多个耗时的Web请求,从而提高应用程序的运行速度。但我们上一章学到的概念不仅适用于Web请求,也适用于运行SOL查......
  • PostgreSQL 执行计划
    查询计划扫描结点顺序扫描索引扫描只用索引的扫描位图堆扫描位图索引扫描公共表表达式的扫描自定义扫描外表扫描函数结果扫描子查询扫描表样本扫描行地址扫描行集合扫描工作表扫描连接结点哈希连接合并连接嵌套连接物化结点聚合位图与位图或分组......
  • postgresql有进程链接数据时删除数据库
    selectpg_terminate_backend(pg_stat_activity.pid)frompg_stat_activitywheredatname='数据库名称'andpid<>pg_backend_pid();命令解释:pg_terminate_backend:用来终止与数据库的连接的进程id的函数。pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。pg_......
  • 一条SQL如何被MySQL架构中的各个组件操作执行的?
    摘要:一条SQL如何被MySQL架构中的各个组件操作执行的,执行器做了什么?存储引擎做了什么?表关联查询是怎么在存储引擎和执行器被分步执行的?本文带你探探究竟!本文分享自华为云社区《一条SQL如何被MySQL架构中的各个组件操作执行的?》,作者:砖业洋__。1.单表查询SQL在MySQL架构中的各个组......