标签频道
回表
该标签下的文章、提问与讨论帖。
背景 一张 40 列的宽表,行宽约 1.5KB,单表约 42GB,现有 5 个二级索引。写入画像:INSERT ~600 QPS + 状态 UPDATE ~200 QPS。 现象 一条高频查询(对账明细列表,~300 QPS): SELEC
背景 我负责一套商户结算系统(MySQL 8.0.32 / InnoDB,单主 16C64G,buffer_pool 32G)。核心表 "t_trade_detail" 约 2800 万行,40 列宽表(大量 VARCHAR(128) 的业
«结论先行:「走了索引」只说明第一跳(二级索引页)是热的,不说明第二跳(聚簇索引数据页)是热的。当二级索引小、聚簇索引大、buffer pool 装得下索引却装不下数据时,点查会稳定落在「索引命中 + 回表随机 I/O」的半命中区间——EX
«结论先行:「加了索引」≠「走了快路径」。慢查询里相当一部分不是没索引,而是索引选择性差、没做成覆盖索引、或者优化器在回表成本和全表扫描之间选错了。我 3 年里被「明明有索引却慢」坑过不止一次,这次把三件事拆开量化讲清楚。» 一、现象与背景
【背景】 我们是一套 MySQL 8.0.32 / InnoDB 的订单查询服务,核心表 t_order 约 5200 万行、单表 9.8GB(含二级索引)。高频查询按 (merchant_id, status, create_time)
文
标题
摘要