這是我的表結構

這是我的SQL查詢

我創建了一個覆寫索引

再次查詢SQL

索引并未生效,我無論怎么創建索引,都不能生效,這是為什么呢?
uj5u.com熱心網友回復:
你的查詢跟你的索引,有什么關系?索引是加速資料記錄的篩查,不是加速回傳欄位的選取
如果你的查詢條件里沒有用到索引,那么索引跟你的這個查詢就毫無關系
uj5u.com熱心網友回復:
你的查詢用到了view欄位作為排序欄位,原來的view欄位建立的索引還有些用,可你竟然把這個索引給覆寫掉了。。。。
uj5u.com熱心網友回復:
索引要與你的查詢相關聯,才能用上。1. where 后面的欄位;
2. order by 后面的欄位;
這2個比較重要。
如果希望再好一點,可以再覆寫 select 后面的欄位,
但這樣會引起空間的占用增大,對大表而言需要你去平衡。
另外,要篩選性比較強的欄位才會有效果。
比如:
找出全中國所有的男人,這樣其實是非常吃力的。你那個 isDeleted, 其實就是建了也會沒用的。
但:
找出身份證號碼為:xxxx yyyy zzzz 的人,就非常快了。
簡單來說,就是要百里挑一,甚至 萬一挑一,才是合適的索引欄位。
如何沒有怎么辦?
那就想辦法創造條件。
比如:在前端搜索時,強制要求輸入日期時間,因為大部分的業務與日期是相關的。
在日期時間上做索引,這個效果是非常好的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/280110.html
標籤:疑難問題
上一篇:救救孩子
