sql优化
已收录文章:17篇
-
数据库 · MySQL | 1个月前 | MySQL · sql优化 · 数据库运维 · 性能排查 · MySQL 8.4 SET_VAR optimizer hint sort_buffer_size SQL 性能隔离MySQL 8.4 的 SET_VAR 优化器提示可以只为一条 SQL 临时调整可用系统变量。本文用报表排序场景说明语法、作用域、可调整变量、EXPLAIN 验收和回退边界,避免为了单条慢查询修改整个实例。497 收藏
-
EXPLAIN 里的 rows 只是优化器估算要扫描的索引记录数,不等于最终访问数据页的成本。本文用订单列表查询拆开回表、覆盖索引和分页取数的关系,并给出可复现的验收方法。475 收藏
-
最近在做项目的时候,遇到了一些大数据量的操作,有大批量的CRUD的操作,一开始的实现的方案经过性能测试,发现性能并不是很好,然后开始审查代码,对相关可以提升性能的操作进行了优421 收藏
-
sql执行方案计算mysql底层会对sql进行查询优化,依据各个方案所产生的cost成本计算最优执行方案,sql的最终执行方案是否走了索引,抑或为什么没有走索引的原因可以用trace工具来分析。开启trac399 收藏
-
MySQL 的 EXPLAIN 只估算执行计划,EXPLAIN ANALYZE 会真正运行语句并给出实际行数与耗时,因此测试时看起来更慢。本文用订单列表查询拆开两者的差异,说明如何读 actual time、如何避免把诊断开销误当业务耗时,并给出可回滚的线上验证边界。399 收藏
-
数据库 · MySQL | 1个月前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICSMySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。353 收藏
-
数据库 · MySQL | 1个月前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICSMySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。350 收藏
-
我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。今天我们来分析一下,在explain中11种不同type代346 收藏
-
MySQL 大表使用 LIMIT offset,size 时,数据库往往仍要扫描并丢弃前面的记录,页码越深越慢。本文用订单列表说明游标分页如何配合复合索引、稳定排序和上一页游标,兼顾速度、重复记录与翻页边界。331 收藏
-
本文按完整工作流讲解 MySQL 慢 SQL 优化:从慢查询日志发现候选 SQL,聚合同类语句,用 EXPLAIN 判断访问方式和扫描行数,再设计联合索引,并通过延迟、扫描行数和业务结果做回归验证。321 收藏
-
MySQL EXPLAIN ANALYZE 会把优化器估算的成本与行数,和执行时的实际耗时、实际行数、循环次数放在同一棵执行树里。本文用订单查询的偏差案例,演示如何读 actual time、rows、loops,判断统计信息、索引选择和数据分布问题,并给出慢查询定位与回归检查方法。321 收藏
-
数据库 · MySQL | 1个月前 | MySQL · 索引 · 执行计划 · sql优化 · 性能排查 · 执行计划 MySQL 8.4 EXPLAIN FORMAT=JSON cost_info query_costMySQL 查询慢时,EXPLAIN 的 rows 只是行数估算,真正影响优化器取舍的还包括 cost_info。本文用订单列表场景拆解 query_cost、read_cost、条件评估成本、prefix_cost 的关系,再用 EXPLAIN ANALYZE 复核估算偏差,避免把 cost 数字直接当成毫秒。284 收藏