轉自: https://www.cnblogs.com/bonelee/p/6278943.htmlhtml
1.什麼是二級索引?優化
咱們前面已經介紹過Cassandra之中有各類Key,好比Primary Key, Cluster Key 等等。若是您對這部分概念並不熟悉,能夠參考以前的文章: [Cassandra教程] (四)使用Key的正確姿式 對於Cassandra來講,一級索引就是Primary Key. 由於查詢的時候,能夠直接根據Key算出token而後直接獲取對應的記錄。spa
而二級索引,做爲輔助索引就是爲了找到一級索引。而後再經過一級索引找到真正的值.net
原文連接:http://www.flyml.net/2016/09/16/cassandra-tutorial-secondary-index/翻譯
2. 二級索引的原理3d
Cassandra之中的索引的實現相對MySQL的索引來講就要簡單粗暴不少了。他其實是 自動偷偷新建立了一張表格,同時將原始表格之中的索引字段做爲新索引表的Primary Key!而且存儲的值爲原始數據的Primary Keycode
所以,什麼樣的數據、字段適合作二級索引,也就很清楚了。htm
咱們翻譯一下官方的解釋:blog
參考網址: https://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_when_use_index_c.html教程
原文連接:http://www.flyml.net/2016/09/16/cassandra-tutorial-secondary-index/
3. 何時 不適合 用索引
總結一下:
就是索引對應的數據值不能太多也不能太少。 太多就超時,太少就浪費資源(須要建立太多的Primary Key)。 同時索引的列還要穩定,不能頻繁的刪除或者更新~
因此我的認爲, 能不用Cassandra之中的索引就不要用 ,還不如本身顯示的建立一個
原文連接:http://www.flyml.net/2016/09/16/cassandra-tutorial-secondary-index/
4. 如何使用索引
索引的使用很是簡單,參考下面的代碼以及相應的註釋:
-- 建立索引 CREATE INDEX artist_names ON playlists( artist ); -- 查詢 SELECT * FROM playlists WHERE artist = 'Fu Manchu'; -- 優化查詢 SELECT * FROM playlists WHERE id = 62c36092-82a1-3a00-93d1-46196ee77204 AND artist = 'Fu Manchu';
原文連接:http://www.flyml.net/2016/09/16/cassandra-tutorial-secondary-index/