1樓:一劑清梳
索引的級數越多,訪問速度不一定越快。
舉例子記憶:就好像是字典的目錄結構一樣,如果目錄比你的字典內容還大,你覺得能好嗎?換位思考,假如內容就10頁,而目錄用了500頁,那麼就相當於索引級數(500頁)越多,但是訪問速度肯定是很慢的,本來10頁,我手翻都能翻完,結果索引的級數太多了,訪問了半天才找到。
總結:還要看資料量是否大。
關於索引的使用要注意幾個事項 :
1 首先資料量小的表不需要建立索引,因為小的表即使建立索引也不會有大的用處,還會增加額外的索引開銷
2 不經常引用的列不要建立索引,因為不常用,即使建立了索引也沒有多大意義
3 經常頻繁更新的列不要建立索引,因為肯定會影響插入或更新的效率
思考:表中建立了索引後,匯入大量資料為什麼會慢?或者說表中建立索引後,為什麼更新資料會很慢?
答:對已經建立了索引的表中插入資料時,插入一條資料就要對該記錄【按索引排序】。因此,匯入大量資料的時候速度會很慢,解決辦法:
在沒有任何索引的情況下插入資料,然後再建立索引。而更新就無法避免了。就像3說的一樣,經常更新的列就不要建立索引。
舉例子:【們】字插入字典裡,首先,【們】這個單詞要找到【單人旁】,在找到【門】,然後找到頁碼,然後再插入或更新進去,這就叫【按索引排序】。
4 索引並不是一勞永逸的,用的時間長了需要進行整理或者重建
初學者在oracle中使用索引,可以使用em的建議(em的advisor central中找sql access advisor)
注意:有時候查詢語句中的索引沒有發揮作用,這又是為什麼呢?
答:在很多情況下,雖然查詢語句使用了索引,但是索引並沒有發揮作用。例如:
在where條件的like關鍵字匹配的字串以」%「開頭,這種情況下,索引是不會起到作用的;where條件中使用or關鍵字來連線多個查詢條件,如果有一個條件沒有使用索引,那麼其他的索引也不會起作用;多列索引的第一個欄位沒有使用,那麼這個多列索引也不會起作用。
解決辦法:根據這些情況,必須對這些語句進行相應的優化。
備註:以上希望能幫助你理解。
2樓:匿名使用者
非也1本200頁的書前150也全是各類目錄 內容50頁 好還是差
3樓:匿名使用者
索引本身也是需要更新的,
如果一個資料庫表包含太多的索引,那麼更新表花費的時間比不加索引花費的時間多,
建議在資料庫表中需要新增索引的列上做索引
4樓:匿名使用者
不是,索引也是建立的虛擬關係,也要佔用空間,同時也要搜尋查詢的。簡單這樣解釋,不是完全準確哈。
5樓:匿名使用者
有多個索引最好自己寫sql的時候,使用 /* +(index) */ 指明
6樓:匿名使用者
當然不是,
關於建立索引的幾個準則:
1、合理的建立索引能夠加速資料讀取效率,不合理的建立索引反而會拖慢資料庫的響應速度。
2、索引越多,更新資料的速度越慢。
不要在選擇的欄位上放置索引,這是無意義的。應該在條件選擇的語句上合理的放置索引,比如where,order by。
例子:select id,title,content,cat_id from article where cat_id = 1;
上面這個語句,你在id/title/content上放置索引是毫無意義的,對這個語句沒有任何優化作用。但是如果你在外來鍵cat_id上放置一個索引,那作用就相當大了。
7樓:匿名使用者
1樓回答不錯!很形象!
求笑話,越多越好,求笑話,越多越好,謝謝
1 楊家將一門忠烈,捐軀沙場。寇準聽聞佘太君欲親率一眾女眷出征,忙來相勸 太君,你們何苦呢?有一個人叫小明,小明沒聽見,求笑話,越多越好,謝謝 要笑話去看 小明滾出去 唄!一日,一德國人和美國人相遇。德國人很瞧不起美國人就問 你們美國人是不是很喜歡吃果醬?美國人答曰 是的。德國人說 你知道果醬是怎麼...
運動越多越好嗎,運動出汗越多越好嗎?
當然不是啦,運動一定要循序漸進,要科學的鍛鍊,長期超負荷運動可能會對身體造成無可挽回的傷害。生命在於運動 我們都知道,加強體育鍛煉的好處有許許多多,像什麼增強體質 提高免疫力 安眠 保持青春活力等等,只要對身體有好處的都能跟鍛鍊掛上勾。感冒了,鍛鍊吧,以後就不會這麼容易感冒了。腰肩痠痛,鍛鍊吧,這是...
求解答,字數越多越好,求解答,字數越多越好
管理是一種實bai踐,基本質 du不在於 知 而在 zhi於 行 其驗證不在dao於邏輯,而在於回成果 答其唯一就是成就。管理是一種奇特的現象。它投入巨大,極有影響力並明顯的缺乏共同的意義。管理就是不斷改進工作。管理者將事情做正確,而領導者只做正確的事情。作文字數越多越好還是越精煉越好?我是專業的作...