MySQL技术文章
-
用 EXPLAIN 判断索引选择问题,比较 USE INDEX、FORCE INDEX 与 MySQL optimizer hint 的作用范围、风险和验证方式。478 收藏 -
MySQL 按部门、店铺或其他分组取排名第二的记录,关键是先用窗口函数生成组内名次,再由外层查询过滤。本文比较 ROW_NUMBER、RANK 和 DENSE_RANK 的并列边界,并补充稳定排序、过滤层级与 NULL 值处理。478 收藏 -
从范围条件估算失真入手,讲清 MySQL 直方图的适用场景、创建语法、统计查看、EXPLAIN 检查以及更新和删除边界。478 收藏 -
MySQL EXCEPT 可排除另一查询已有的完整结果行。通过租户导出样例说明版本要求、比较列、DISTINCT与ALL、参数范围和最终排序,避免误排除。478 收藏 -
MySQL 用 LEFT JOIN 做关联统计时,应 COUNT 右表非空主键,并把右表筛选条件放进 ON,才能列出没有明细的主体并返回 0。477 收藏 -
EXPLAIN 里的 rows 只是优化器估算要扫描的索引记录数,不等于最终访问数据页的成本。本文用订单列表查询拆开回表、覆盖索引和分页取数的关系,并给出可复现的验收方法。475 收藏 -
一个订单列表翻到很后面后明显变慢,问题通常不只在 LIMIT,而在于数据库仍要跳过大量记录并回表。本文用游标式分页、稳定排序和覆盖索引改造一个列表接口,并用 EXPLAIN 核对执行路径。475 收藏 -
旧表启用 MySQL CHECK 约束前,先用反向查询找出历史违规数据,按业务规则分批修复或隔离,再以 NOT ENFORCED 暂存命名约束,确认全表通过后切换为 ENFORCED。475 收藏 -
数据库 · MySQL | 2天前 | MySQL · JSON · 数据库 · 查询优化 · mysql 索引 explain JSON json_extract 生成列 JSON_VALUE JSON_UNQUOTE
MySQL 的 JSON 列不能直接按普通列方式建立索引。本文以订单扩展属性为例,把稳定的 JSON 路径提取为有明确类型的生成列,再建立二级索引,并用 EXPLAIN 判断表达式、结果类型和实际索引选择是否匹配。475 收藏 -
围绕MySQL NDB Cluster 8.4的只读状态查询,说明管理客户端连接、SHOW与STATUS的使用边界,并结合节点身份、观察时间和维护材料避免误判及未经授权的集群变更。474 收藏 -
MySQL WITH RECURSIVE 查询层级数据时,真正需要防的是环路和无界展开。本文用组织架构示例拆开终止条件、递归深度上限、路径去重和结果核对。472 收藏 -
MySQL GROUP_CONCAT 结果被截断时,先检查 group_concat_max_len,再按会话、全局和持久配置选择修复方式,并排除字节长度、排序、NULL 与 max_allowed_packet 等边界问题。470 收藏 -
MySQL CTE 不一定物化。本文用 MERGE 与 NO_MERGE 对照 SQL,比较中间结果复用和生成成本,说明聚合与派生表的限制,以及执行计划中的性能判断方法。470 收藏 -
整理 MySQL GTID 复制切换前的核对方法,区分接收集合与执行集合,用 GTID_SUBSET 和 GTID_SUBTRACT 判断候选副本是否覆盖主库事务,并保留回退依据。469 收藏 -
MySQL NDB Disk Data 中,表空间负责组织数据文件并绑定日志文件组,日志文件组负责管理撤销日志文件。本文用创建顺序和 FILES 表把两者的关系、文件落点与排查方法讲清楚。469 收藏