小表是否就真的沒有必要加索引

2021-08-31 05:11:43 字數 693 閱讀 1901

之前總結了部分使用索引的規則,其中有一條: 小表不必要加索引

今個,在讀oracle效能診斷藝術的時候,作者對這條規則提出了異議,說是曾經在一次調優中,對乙個小表新增索引,使得整個查詢的效能得以提高30倍。

我覺得非常詫異,再細讀下去才得知,小表做一次全表掃瞄,和做一次索引定位,時間的相差也許只有0.01秒,一般情況下是可以忽略不計的, 但小表如果在查詢中處於核心路徑的話,對小表的訪問次數可能會放大很多倍,如果放大10000倍,那就相差100秒,這樣的消耗還是相當嚴重的。

為此,特意準備了一組資料進行測試,目前開發的專案中正好有這樣的大小表,可以測:

placement 20w行左右, schverfile 100行

select p.trafficid from placement p where exists (select null from schverfile s where p.schedfilename = s.schedfilename)

採用子關聯查詢,分別在schverfile.schedfilename有索引和無索引的條件下跑, 前者是0.91秒,後者確有27.37秒。 對於每一行p的記錄,都會呼叫一次s的查詢,相當於放大了20w倍

所以,得出結論是,小表是否加索引,還得看其執行的查詢,處於核心路徑的小表,如果不會頻繁修改,最好是加上索引,以防萬一。 如果是頻繁修改的,那就還得在權衡維護索引的消耗和全表掃瞄消耗之間做乙個權衡了。

雲桌面終端 雲桌面是否真的有被誇大,看完你就知道了

自從我接觸雲桌面以來,聽到和看到最多的就是雲桌面是如何如何的好,特別是這幾年來在傳統pc銷量下滑的情況下,更是被很多人說雲桌面才是未來辦公的首要選擇,這究竟是一些廠家在誇大雲桌面的功能來達到宣傳的效果,還是說它確實有一些獨到之處的。看完以下這些就知道它到底有沒有被誇大的了。其次維護難度,傳統的pc配...

基業是否真的可以長青?

基業長青是一本書。這本書 的是企業長生不老的秘訣。人不可以長生不老 至少目前不可以 企業是否能夠做到長生不老?微軟過了他的巔峰時刻,被google超越了 google正處在他的巔峰時刻,可是他的超越者已經出現了 按照目前的形式,facebook似乎要超越google。那麼facebook之後,肯定還...

syskey 真的啟用就無法關閉嗎

syskey?真的啟用就無法關閉嗎?1 將syskey啟用後,在登錄檔hklm system currentcontrolset control lsa下被新增了新的鍵值 secureboot 中儲存了syskey的設定 1 key儲存在登錄檔中 2 key由使用者登入時輸入的口令生成 3 key儲...