欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql回表過濾發(fā)生在哪里

黃文隆2年前10瀏覽0評論

在使用MySQL查詢時,回表過濾指的是查詢的數(shù)據(jù)在索引中已經(jīng)被過濾掉了,但是MySQL還需要在對應(yīng)的數(shù)據(jù)表中再次進行一次過濾,才能將符合條件的數(shù)據(jù)返回給用戶。

回表過濾的發(fā)生位置在MySQL的存儲引擎層,因為存儲引擎通過索引定位到需要返回數(shù)據(jù)的頁,但頁內(nèi)的數(shù)據(jù)可能并不符合查詢條件,因此需要在對應(yīng)的數(shù)據(jù)表中再次過濾。

示例代碼:
SELECT * FROM `table` WHERE `name` = 'Tom';

假設(shè)`table`表以`name`字段建立了索引,查詢`name`等于`Tom`的數(shù)據(jù)時,MySQL會首先通過索引定位到數(shù)據(jù)所在的頁;然后再回到數(shù)據(jù)表中,逐一過濾每一行數(shù)據(jù),將符合條件的數(shù)據(jù)返回給用戶。

回表過濾是MySQL中常見的優(yōu)化點,一般我們可以通過在建立索引時,將查詢語句中需要過濾的字段都加入到索引中,避免回表過濾,提高查詢效率。