看啥推荐读物
专栏名称: 程序IT圈
一个学习编程技术和读者福利共存的公众号,每天推送高质量的优秀博文和原创文章,开源项目,实用工具,面试技巧等 。公众号每月至少一次读者送书福利! 关注置顶,不错过精彩推送!
今天看啥  ›  专栏  ›  程序IT圈

一张900w的数据表,怎么把要花费17s执行的SQL优化到300ms?

程序IT圈  · 公众号  · 程序员  · 2020-03-25 13:30
作者:Muscleapehttps://www.jianshu.com/p/0768ebc4e28d有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:减少回表操作;-- 优化前SQLSELECT  各种字段FROM `table_name`WHERE 各种条件LIMIT 0,10;-- 优化后SQLSELECT  各种字段FROM `table_name` main_taleRIGHT JOIN (SELECT  子查询只查主键FROM `table_name`WHERE 各种条件LIMIT 0,10;) temp_table ON temp_table.主键 = main_table.主键# 前言首先说明一下MySQL的版本:mysql> select version();+-----------+ ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照