LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

SQL優化:索引的那些事兒

admin
2025年6月21日 23:59 本文熱度 65

提到索引,想必小伙伴們都知道,它是為了提高查詢效率而生。但是在查詢過程中,怎么才能讓我們的查詢語句使用索引?相必大家或多或少都會遇到這樣的問題。今天我們就來回答這個問題。

1

   聚集索引和非聚集索引


索引一般分為聚集索引和非聚集索引。

聚集索引速度很快,但只能建一個,所以盡量把經常使用的列建成聚集索引。

非聚集索引雖然沒聚集索引快,但是可以建多個,比全表掃描快。


2

 如何建立高效的索引


A.關聯條件上建立索引

例如:

SELECT  * FROM  T1

JOIN  T2 ON  T1.ORDER_ID=T2.ORDER_ID;

在關聯條件ON后面的兩個列就可以分別建立索引,這樣會很快將符合關聯條件的數據查詢出來。

B.在條件查詢上建立索引

例如:

SELECT * FROM T1 

WHERE  T1.PRICE>20;

在WHERE條件PRICE列上就可以建立索引。

注意:以下幾種情況不會使用索引

  • 在索引列上使用了運算符的,

    例如:T1.PRICE*0.5>20,這種不會使用索引

  • 在索引列上使用了函數的,

    例如:UPPER(T1.ADDRESS)='NEWYORK',也不會使用索引

  • 在使用索引時存在空值NULL的,

    例如:T1.ADDRESS IS NULL,那么在查詢時就不會走索引了

  • 字符型數據不加引號也不會使用索引

    例如:ORDER_ID原本是字符型,T1.ORDER_ID='112'會使用索引,但是如果去掉引號,變成了T1.ORDER_ID=112,查詢語句不會報錯,但是不會使用索引了。

  • 或(OR)和不等(<>,!=)以及NOT IN等這些也不會使用索引

  • 經常使用的LIKE,除了后置匹配,其他匹配均不走索引

    例如:T1.ADDRESS LIKE ‘NEW%’,這個走索引,但是像

    T1.ADDRESS LIKE ‘%NEW%’和T1.ADDRESS LIKE ‘%NEW’則均不走索引了

  • 最后如果查詢優化器判斷全表掃描比走索引還快也不會使用到索引。

C.建立索引的原則

  • 不頻繁寫入和更新的列適合建立索引

  • 經常查詢的列適合建立索引

  • 重復數據較少的可以建立索引

D.聯合索引的妙用

聯合索引就是幾個列合在一起組成一個索引,這種在WHERE條件中相比單列索引會起到意想不到效果。

例如:

SELECT * FROM T1 WHERE T1.CITY=‘北京’ AND T1.DISTR='海淀區';

這個時候將列CITY和DISTR建立成一個聯合索引,效果會更好。

注意:聯合索引需要按順序走,如果中間某個索引不能使用,那它之后的列均不會使用索引。

例如:

SELECT * FROM T1 

WHERE T1.CITY=‘北京’

AND LEFT(T1.DISTR,3)='海淀區' 

AND T1.ROAD='#10'

如果我們將CITY,DISTR,ROAD建立成為聯合索引,由于索引的前置規則,只會讓CITY走索引,后面的DISTR因為使用了函數,索引失效,最后的ROAD列因為DISTR的失效也會跟著失效,這里記住即可。


3

什么情況不適合建立索引

由于創建索引和維護索引耗時,時間隨著數據的增加而增加,成正比;需要占物理空間;當對表中的數據進行維護時,對索引也要進行維護,這樣就降低了數據的維護速度。基于這些缺點,以下情況不適合建立索引

  • 對于在查詢過程中很少使用或參考的列,不應該創建索引。

  • 對于那些只有很少數據值的列,不應該創建索引,例如:性別。

  • 對于那些定義為image,text和bit數據類型的列,不應該創建索引。

  • 當修改性能遠大于檢索性能,不應該建立索引。

  • 重復值較多的也不適合建立索引。

好了,今天的索引就講到這里,對優化感興趣的小伙伴,可以加入我們的QQ群或微信群,大家一起交流學習。


——End——


閱讀原文:原文鏈接


該文章在 2025/6/23 12:57:07 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
精品国产不卡久久 | 色婷婷久综合久久一本国产AV | 香蕉网色老视频在线观看 | 日韩精品在线第一页 | 色一伦一情一区二区三区 | 色悠久久久久综合网伊人男男 |