CQL(Cassandra Query Language)辅助索引

翻译 2017年01月03日 09:56:14

CQL支持在表上创建辅助索引,允许表上的查询使用这些索引。辅助索引由以下定义的名称标识:

index_name ::=  re('[a-zA-Z_0-9]+')

创建索引

在表上创建辅助索引使用CREATE INDEX语句:

create_index_statement ::=  CREATE [ CUSTOM ] INDEX [ IF NOT EXISTS ] [ index_name ]
                                ON table_name '(' index_identifier ')'
                                [ USING string [ WITH OPTIONS = map_literal ] ]
index_identifier       ::=  column_name
                           | ( KEYS | VALUES | ENTRIES | FULL ) '(' column_name ')'

例如:

CREATE INDEX userIndex ON NerdMovies (user);
CREATE INDEX ON Mutants (abilityId);
CREATE INDEX ON users (keys(favs));
CREATE CUSTOM INDEX ON users (email) USING 'path.to.the.IndexClass';
CREATE CUSTOM INDEX ON users (email) USING 'path.to.the.IndexClass' WITH OPTIONS = {'storage': '/mnt/ssd/indexes/'};

CREATE INDEX语句用于为给定表中给定(现有)的列创建新的(自动)辅助索引。如果需要,可以在ON关键字之前指定索引本身的名称。 如果列的数据已经存在,那么它将被异步索引。创建索引后,在插入时自动对列的新数据进行索引。

尝试创建已存在的索引将返回错误,除非使用IF NOT EXISTS选项。如果使用它,如果索引已经存在,语句将是无操作。

Map中的索引

在Map上创建索引时,您可以在映射键上添加索引也可以在映射值上添加索引。如果列标识符放在keys()函数中,则索引将位于映射键上,从而允许在WHERE子句中使用CONTAINS KEY否则,索引将在映射值上。

删除索引

删除辅助索引使用DROP INDEX语句:

drop_index_statement ::=  DROP INDEX [ IF EXISTS ] index_name

DROP INDEX语句用于删除现有辅助索引。语句的参数是索引名称,可以可选地指定索引的键空间。

如果索引不存在,则语句将返回错误,除非使用IF EXISTS,在这种情况下,操作是无操作。

Cassandra 的 cql入门使用

Cassandra 的 cql入门使用
  • u012965373
  • u012965373
  • 2016年06月28日 23:03
  • 4097

Cassandra常用命令

ssh admin@192,168.6.201  tongdun  cqlsh 192.168.6.202  desc keyspaces;  use forseti_fp;  ceate inde...
  • network_boy
  • network_boy
  • 2015年03月29日 21:20
  • 7959

Cassandra 2.X 内置二级索引浅析

Cassandra 2.X 内置二级索引浅析Cassandra内置二级索引Cassandra系统内置两种二级索引,分别是KeysIndex和CompositesIndex。 Cassandra源代码...
  • at99ak77
  • at99ak77
  • 2015年07月04日 16:23
  • 1348

CQL(Cassandra Query Language)数据定义

CQL将数据存储在表中,这些表的模式定义了表中所述数据的布局,这些表被分组在键空间中。 键空间定义了一些适用于其包含的所有表的选项,其中最显着的是键空间使用的复制策略。 通常鼓励应用程序使用一个键空间...
  • nangongyanya
  • nangongyanya
  • 2016年12月30日 12:31
  • 1173

CQL(Cassandra Query Language)物化视图

物化视图名称由以下语法定义: view_name ::= re('[a-zA-Z_0-9]+') 创建视图 您可以使用CREATE MATERIALIZED VIEW语句在表上创建物化视图: c...
  • nangongyanya
  • nangongyanya
  • 2017年01月03日 10:22
  • 1053

CQL(Cassandra Query Language)定义

标识符和关键字: CQL语言使用标识符(或名称)来标识表,列和其他对象。标识符是一个与正则表达式[a-zA-Z][a-zA-Z0-9_]*匹配的token。许多像SELECT或WITH这样的标识符是...
  • nangongyanya
  • nangongyanya
  • 2016年12月29日 16:00
  • 643

CQL(Cassandra Query Language)JSON支持

Cassandra 2.2引入了对SELECT和INSERT语句的JSON支持。 此支持不会从根本上改变CQL API(例如,模式仍然被强制执行),它只是提供一种方便的方式来处理JSON文档。 SE...
  • nangongyanya
  • nangongyanya
  • 2017年01月03日 16:11
  • 1103

CQL(Cassandra Query Language)安全性

数据库角色(ROLE) CQL使用数据库角色来表示用户和用户组。 角色定义语法为: role_name ::= identifier | string 创建角色(ROLE) 创建角色使用CRE...
  • nangongyanya
  • nangongyanya
  • 2017年01月03日 12:57
  • 423

CQL(Cassandra Query Language)数据操作

本节介绍CQL支持插入,更新,删除和查询数据的语句。 查询(SELECT) 从数据查询数据是使用SELECT语句完成的: select_statement ::= SELECT [ JSON | ...
  • nangongyanya
  • nangongyanya
  • 2016年12月30日 17:33
  • 2122

B+树,聚集索引,非聚集索引(辅助索引) 之一

B+树,聚集索引,非聚集索引(辅助索引) 之一 B+树,由二叉树和双向链表引申出来的一种数据结构。 通常数据库的索引是通过B+树来实现的。聚集索引和非聚集索引都是B+树的结构。聚集索引不但描...
  • qbw2010
  • qbw2010
  • 2015年04月19日 16:14
  • 281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CQL(Cassandra Query Language)辅助索引
举报原因:
原因补充:

(最多只允许输入30个字)