亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL優(yōu)化:索引的那些事兒

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

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

1

   聚集索引和非聚集索引


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

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

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


2

 如何建立高效的索引


A.關(guān)聯(lián)條件上建立索引

例如:

SELECT  * FROM  T1

JOIN  T2 ON  T1.ORDER_ID=T2.ORDER_ID;

在關(guān)聯(lián)條件ON后面的兩個列就可以分別建立索引,這樣會很快將符合關(guān)聯(lián)條件的數(shù)據(jù)查詢出來。

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

例如:

SELECT * FROM T1 

WHERE  T1.PRICE>20;

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

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

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

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

  • 在索引列上使用了函數(shù)的,

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

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

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

  • 字符型數(shù)據(jù)不加引號也不會使用索引

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

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

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

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

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

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

C.建立索引的原則

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

  • 經(jīng)常查詢的列適合建立索引

  • 重復(fù)數(shù)據(jù)較少的可以建立索引

D.聯(lián)合索引的妙用

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

例如:

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

這個時候?qū)⒘蠧ITY和DISTR建立成一個聯(lián)合索引,效果會更好。

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

例如:

SELECT * FROM T1 

WHERE T1.CITY=‘北京’

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

AND T1.ROAD='#10'

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


3

什么情況不適合建立索引

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

  • 對于在查詢過程中很少使用或參考的列,不應(yīng)該創(chuàng)建索引。

  • 對于那些只有很少數(shù)據(jù)值的列,不應(yīng)該創(chuàng)建索引,例如:性別。

  • 對于那些定義為image,text和bit數(shù)據(jù)類型的列,不應(yīng)該創(chuàng)建索引。

  • 當(dāng)修改性能遠(yuǎn)大于檢索性能,不應(yīng)該建立索引。

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

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


——End——


閱讀原文:原文鏈接


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