更新时间:2023-11-21 gmt 08:00
如何使用二级索引-凯发k8国际娱乐官网入口
什么是二级索引
对于geminidb cassandra,primary key就是一级索引,查询时通过指定对应primary key,就可以直接检索到对应记录。如果需要根据非primary key列进行查询,此时需要用到二级索引。
二级索引原理
二级索引的实现其实就是创建一张隐式的表,该表的primary key是创建索引的列,该表的值是原表的primary key。
假设有一张playlists表,表结构如下:
create table playlists ( id int, song_id int, song_order int, album text, artist text, title text, primary key (id, song_id));
查询结果如下:
图1 查询结果
如果对artist字段建立索引,则索引隐式的表的结构如下所示:
图2 查询结果
其中,artist是索引表的primary key,id列、song_id列是索引表的普通列,即原表的primary key。
什么场景下不建议使用索引
- 列中重复值过多
例如某一表中有一亿条数据,且artist一致,这种情况不建议索引artist列。
- counter列不能进行索引
- 频繁更新或者删除的列
如何使用索引
- 创建索引
create index artist_names on playlists( artist );
注意:如果原表中有大量数据,会涉及到索引数据的重建,只有当索引数据重建完成以后才能查询索引。
您可以通过查询系统的“indexinfo”,查看索引是否重建完成。如果有您创建的索引的名字,表示索引数据已经重建完成。
图3 查询结果
- 通过直接指定索引列,查询索引。
图4 查询结果
每张表可以创建多个索引,且索引会影响写入性能。
父主题:
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨