国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql order by為什么沒(méi)有走索引排序?

瀏覽:161日期:2022-06-13 13:04:11

問(wèn)題描述

mysql order by為什么沒(méi)有走索引排序?

mysql order by為什么沒(méi)有走索引排序?

order by city_id (主鍵走索引)mysql order by為什么沒(méi)有走索引排序?

order by country_id(不走索引!!!)mysql order by為什么沒(méi)有走索引排序?

問(wèn)題解答

回答1:

你的city_id是主鍵,而country_id是復(fù)合主鍵。

回答2:

改成

SELECT * FROM city FORCE INDEX(idx_fk_country_id) ORDER BY country_id;

是這樣的,你在SELECT中查詢了索引建以外的列,那么ORDER BY就不會(huì)使用索引了。你可以用FORCE INDEX來(lái)強(qiáng)制使用索引。

還有一點(diǎn),就是所謂的覆蓋索引。覆蓋索引的定義是:MySQL可以根據(jù)索引返回select字段而不用根據(jù)索引再次查詢文件而得出結(jié)果。

當(dāng)你使用select *時(shí),你沒(méi)有強(qiáng)制指定索引,那么mysql為了得到你的查詢的字段而查詢文件,然后再進(jìn)行排序操作,這就沒(méi)有用到覆蓋索引。而你使用了force index就會(huì)強(qiáng)制使用覆蓋索引,這樣就不會(huì)出現(xiàn)filesort的情況了。

回答3:

mysql order by為什么沒(méi)有走索引排序?

相關(guān)文章:
主站蜘蛛池模板: 北碚区| 嵊州市| 和田市| 忻州市| 古田县| 隆化县| 白朗县| 油尖旺区| 聂拉木县| 喀喇| 北海市| 漯河市| 泰顺县| 革吉县| 抚顺县| 新民市| 曲靖市| 高雄县| 江华| 乐业县| 青岛市| 佳木斯市| 湘西| 砀山县| 容城县| 施秉县| 石狮市| 呼伦贝尔市| 寻乌县| 长白| 富锦市| 镇康县| 郑州市| 临洮县| 肥东县| 章丘市| 辽阳县| 江达县| 社旗县| 灵台县| 阳朔县|