2014-02-08 47 views
3

假設有一個包含3列A,B和C的表。A是主鍵。 我有兩種類型的查詢,一種是按A和B搜索,另一種是按A和C搜索。 爲C增加一個二級索引以基於A和C進行搜索或者用A創建一個新表, C和B列。在cassandra查詢中使用主鍵和輔助索引的性能

從不同的角度來看,一般來說,在兩列上有兩個二級索引,並且在兩個索引上都有一個where子句調節是一個好主意。組合主鍵和輔助索引是否一樣?

https://www.youtube.com/watch?v=CbeRmb8fI9s#t=56

https://www.youtube.com/watch?v=N6UY1y3dgAk#t=30

回答

5

輔助索引幾乎從來沒有幫助的表現,他們大多是說服允許查詢瀏覽數據的工具。幾乎所有的性能收益都來自正確構建主鍵和創建適當建模您想要執行的查詢的數據模式。

因此,有兩個表 由B和A由C將很可能是理想的解決方案,並將實際與您的數據比例。

+0

你是對的Russ,這個視頻https://www.youtube.com/watch?v=N6UY1y3dgAk#t=30讓我對它有不同的思考,但沒有解釋它。 – Navid

+0

有幾個原因,但最大的一點是二級索引最終會分佈在整個羣集中。因此,執行二級索引查詢時,您最終需要來自每個節點的數據。 這裏是一個很好的runthrough網站 http://www.wentnet.com/blog/?p=77 – RussS

+0

這是正確的,但在視頻中提到,混合分區鍵和索引可以在某些情況下是有益的,我想知道這些情況是什麼以及爲什麼/如何有益。 – Navid