转自: 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/