亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

難道是mysql配置的問題???tell me why?。?!

難道是mysql配置的問題???tell me why?。?!

偶然的你 2023-04-18 18:14:54
ID是自增主鍵,不知道為什么就是用不到索引,explain的時候rows掃的是全表,效率很低,換其他已經索引的列也不行,分頁用到的order by。where 的時候可以用到索引,就是一order by就不行了,請教各位前輩~~~這樣可以用到索引:SELECT * FROM `XXX` ORDER BY id DESC LIMIT 10,40;這樣用不到索引:SELECT * FROM `XXX` ORDER BY id DESC LIMIT 10,41;用不到索引:SELECT * FROM `give` ORDER BY id desc LIMIT 400,20;這樣也用不到索引。。。:SELECT * FROM `give` ORDER BY id desc;update:現在庫里有520rows,有朋友說是因為行數小于1000,索引mysql認為全表掃效率更高,是這樣的嗎?但是慢查詢日志里他效率確實不高??!
查看完整描述

1 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

我覺得做分頁完全可以這樣:

SELECT *FROM `XXX` AS `x`INNER JOIN(    SELECT `id`
    FROM `XXX`
    ORDER BY `id` DESC
    LIMIT M,N
) AS `t`USING(`id`)

子查詢用到了覆蓋索引,所以不需要掃描磁盤就找到了所需要的行的id,然后可以直接去磁盤取需要的數據了。


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號