1. 前言
本文描述了團(tuán)隊(duì)在工作中遇到的一個(gè)MySQL分頁(yè)查詢問(wèn)題,順帶講解相關(guān)知識(shí)點(diǎn),為后來(lái)者鑒。本文的重點(diǎn)不是"怎樣"優(yōu)化表結(jié)構(gòu)和SQL語(yǔ)句,而是探索不同查詢方式"為什么"會(huì)有顯著差異。在本文中,涉及下列知識(shí)點(diǎn):
MySQL 延遲關(guān)聯(lián)
MySQL Optimizer Trace使用
MySQL 排序原理
2. 問(wèn)題
工作中用到了一張表,字段比較多,每行大概500字節(jié),總行數(shù)大概80萬(wàn)。場(chǎng)景中,需要根據(jù)某個(gè)非索引字段排序,然后進(jìn)行分頁(yè)讀取。先把脫敏之后的表結(jié)構(gòu)奉上(只修改了字段名):
View Code
重點(diǎn)字段是a0和a1。再看一下表信息: