客户端先发送一条查询给服务器;
服务器先检查查询缓存,如果命中了缓存,则立刻返回给存储在缓存中的结果,否则进入下一个阶段;
服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划;
MySQL 根据优化器生成的执行计划...比如一个非主键检索,查询偏移量limit 950,50按创建时间倒序的数据,数据库引擎会执行查询,从非聚簇索引树上回表到聚簇索引树上取出1000条数据,然后排序,最后筛选出第950~1000条数据。...延迟关联就是在数据筛选阶段不回表,从非聚簇索引树上取1000条数据,筛选出需要的50条,然后通过主键取聚簇索引树上取数据。目的就是降低不必要的回表和筛选。...开始那么回行带来的性能问题会放大)
新sql执行过程
解析sql,生成执行计划,子查询选择seller_id索引树执行查询
扫描10684条记录,由于排序字段是主键,排序和筛选操作直接在seller_id...sql优化
根据具体的查询场景和诉求,对sql进行改造,或者适当调整索引,从而短期提供单表高性能响应,并且此方案没有额外的机器成本,只需要对底层sql检索语句进行优化,当然这也需要更高的认知成本