1樓:某_立矃
聚集索引的薯漏好處就是可以讓資料按照此索引的順序進行物理位置存放,用blog_comment表來說明,此表有comm_idcomm_logidcomm_author
comm_posttime等欄位。
比如說posttime between date1 and date2,ok這樣的話聚集索引利用到了,因為這個區間段的資料是非常親密地靠在一起的,可以用最少的i/o開銷取得所需的結果集。可是我們知道,更多的時候我們是在顯示乙個article時然後讀取它的所有comments,這時,過濾條件就成姿飢了comm_logid = id了,如果聚集索引被comm_id心安理得地佔用的話跡手返,那麼很可能我們這批comments需要多個資料頁才能得到,這樣的話,就大大地增加了時間,因為i/o的開銷比cpu在記憶體上的資料查詢排序都是要高乙個資料級的。
但是聚集索引的改變同樣會給其它的查詢帶來負面影響,比如說comm_id = id的查詢,在原來只需要在pk_blog_comment_comm_id的聚集索引上查詢記錄,然後得到的指標指向就是實際資料塊的存放位置了,但是現在,在此非聚集的唯一索引上查詢得到的指標是指向ix_blog_comment_comm_logid的的位置,所以需要多一次的bookmark lookup才能取得所需資料。
其實使用的方法很簡單,當你需要頻繁地取得批量資料時,把聚集索引放在最有可能定位區間的欄位上。
另外blog_article的聚集索引我放在posttime上了,因為經常要對此欄位進行order by
的查詢,雖然logid和posttime的排序方向是一樣的,但是我這樣可能通過cluster index的lookup 節省乙個order by的時間,不過到底孰優孰劣我還不敢下結論。
其它的blog_archive,blog_category的聚集索引都在authorid上,因為這個都是對於authorid = id的查詢。
也許隨著資料量的增長,情況會有不同,這個以後再看情況調整了。
聚集索引的介紹
2樓:kyoya六
聚集索引是指資料庫錶行中資料的物理順序與鍵值的邏輯(索引)順序相同。乙個表只能有乙個聚集索引,因為乙個表的物理順序只有一種情況,所以,對應的聚集索引只能有乙個。如果某索引不是聚集索引,則表中的行物理順序與索引順序不匹配,與非聚集索引相同,聚集索引有著更快的檢索速度。
如何發現多餘的索引及索引碎片診斷
分解天賦,獲得一個天賦書碎片,2個碎片換一個天賦書。拿到別的職業的天賦,知道mhol嗎,可以試試 sql server 2008怎麼用sql語句查詢索引碎片 20 你去做個維護計劃,就知道了麼 資料庫索引重建之後,碎片率再次提高 只能說這是你係統的特性了,經常性的執行delete insert,所以...
如何高效使用搜尋引擎
如何在資訊海洋中,更精準找到有用素材?怎樣過濾掉不需要的網頁?想搜特定 的網頁怎麼辦?這些問題是我們在使用搜尋引擎過程中遇到最多問題。這裡有幾個超實用搜尋經驗,讓搜尋引擎更 懂 你!在搜尋引擎搜尋框中輸入多個搜尋詞,在搜尋詞a和b之間加上 如a b 在查詢詞前加上 url in 冒號 要用英文半形,...
如何使用搜尋引擎,如何使用btdigg搜尋引擎?
現在網際網路上大大小小的搜尋引擎大約有幾百個之多,而且每個都聲稱自己是最好的。要是隨便抓起來就用,只會是事倍功半,甚至 越搜尋越糊塗。所以,花一點工夫挑選恰當的搜尋工具,是萬萬省不得的。1 快速查詢速度當然是搜尋引擎的重要指標,優秀的搜尋工具內部應該有一個含時間變數的資料庫,能保證所查詢的資訊都是最...