cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现...
cassandra的索引查询和排序
cassandra的索引查询和排序
cassandra的查询虽然很弱,但是它也是支持索引和排序的,当然是简陋的查询,这一切都是为了追求性能的代价,所以要使用cassandra,你不能希望它完全适用你的逻辑,而是把你的逻辑设计的更适合cassandra。
第一:索引查询
cassandra是支持创建二级索引的,索引可以创建在除了第一个主键之外所有的列上,当然有些类型除外,例如集合类型。
例如
1 2 3 4 5 6 7 8 9 10 11 |
|
在第一主键a上创建索引是不可以的:
1 |
|
索引列只可以用=号查询,所以
1 2 |
|
如果你的查询条件里,有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现
例如:
1 |
|
虽然m字段是非索引非主键字段,但是只要加了ALLOW FILTERING条件,它会先根据e=1查出来,再对结果进行m>2过滤
第二:排序
cassandra也是支持排序的,order by。 当然它的排序也是有条件的,
第一:必须有第一主键的=号查询。cassandra的第一主键是决定记录分布在哪台机器上,也就是说cassandra只支持单台机器上的记录排序。
第二:那就是只能根据第二、三、四…主键进行有序的,相同的排序。
第三:不能有索引查询
1 2 3 4 |
|
以上都是可以的。
1 2 3 4 |
|
其实cassandra的任何查询,最后的结果都是有序的,默认的是b asc, c asc,因为它内部就是这样存储的。
这个我在《cassandra2.0 如何实现分页查询》文章中提到过。所以你使用b desc, c asc 或者b asc,c desc 去排序,cassandra是比较为难的。
当然这个默认存储排序方式,是可以在建表的时候指定的。
1 2 3 4 5 6 7 8 9 |
|
除非注明,赵岩的博客文章均为原创,转载请以链接形式标明本文地址
本文地址:http://zhaoyanblog.com/archives/499.html
转载于:https://www.cnblogs.com/bonelee/p/6306079.html
cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现...相关推荐
- 【mybatis】mybatis自定义动态字段查询,mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段...
mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段 先看一下 怎么实现动态的自定义字段查询: 例如: 而field 就是数据表中的某一个字段 String f ...
- Oracle提高SQL查询效率where语句条件的先后次序
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处 ...
- mysql 主键查询性能_MySQL查询性能优化(精)
MySQL查询性能优化 MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下 ...
- 19_clickhouse,数据查询与写入优化,分布式子查询优化,外部聚合/排序优化,基于JOIN引擎的优化,SQL优化案例,物化视图提速,查询优化常用经验法则,选择和主键不一样的排序键,数据入库优化
25.数据查询与写入优化 25.1.分布式子查询优化 25.1.1.分布式表的IN查询示例1(普通IN子查询.IN子查询为本地表) 25.1.2.分布式表的IN查询示例2(普通IN子查询.IN子查询为 ...
- 检索数据_8_查询语句里执行条件判断
查询语句里执行条件判断 需求描述 需求:查询雇员表emp里的员工名称.工资.工资分类状态.这里的工资分类状态按照以下规则显示:如果工资小于等于2000则显示UNDERPAID(即报酬比较低的),如果工 ...
- 整型索引查询mysql是不是快点_图解Mysql索引的数据结构!看不懂你来找我
听说微信搜索<Java鱼仔>会变更强哦! 本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看哦 (一)关于索引 索引是帮助Mysql更加高效获取数据的 ...
- MySQL查询与数据库设计 #万能公式 #思维导图 #MySQL查询 #数据库设计规范 #第二部分
MySQL查询 零.MySQL查询万能公式 一.查询 1)查询表中记录 2)给表取名 3)去重(distinct) 二.条件查询 1)比较运算符 2)逻辑运算符 3)模糊查询 like(用通配符) r ...
- mysql索引查询 with_mysql select with in子句不使用索引
我有一个联系人表,其主键为id.它还有一个辅助索引idx_id_del_user(id,deleted,user_id). 以下查询使用索引,因此非常快 – select id from jts_co ...
- MySQL经典四表查询(教师,学生,成绩,课程表)多表查询
我用的工具:MySQL5.7+SQLyog-11.2.5-0 1.表架构呈现 student(sid,sname,sage,ssex) 学生表 teacher(tid,tname) 教师表 cours ...
最新文章
- 今晚直播 | 谷歌资深工程师手把手教你使用TensorFlow最新API构建学习模型
- 机器学习中你不可不知的几个算法常识
- SpringMVC、Spring和Struts的区别
- git 命令简单总结
- 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page
- Oracle Spatial分区应用研究之一:分区与分表查询性能对比
- C#调用Python模块
- python 把xml中含有特殊字段的部分提取出来_Python: 爬虫网页解析工具lxml.html(一)...
- 2017.3.12 每日小记
- java用户角色权限管理 只显示姓_扩展RBAC用户角色权限设计方案
- 循环队列 - 顺序存储结构
- 安装CentOS步骤
- 单片机软件开发的简单入门
- colorui 使用iconfont图标
- 最小巧最简单最安全的KMS模拟器vlmcsd,最新支持Win10 server2016和Office2016!
- wow插件补充说明篇
- Linux tcp拥塞控制
- Saltstack自动化运维详解(数据系统 jinja模板 job管理)
- Java核心技术卷一读书笔记
- k8s 证书过期解决
热门文章
- mysql 5.7 多实例主从_mysql-5.7.20源码安装 + 多实例 + 主从复制
- 二叉搜索树的第k个节点java_剑指Offer62:二叉搜索树的第k个结点(Java)
- vscode更改编码_装上后这 10个扩展后,VSCode 真的是无敌的存在
- oracle11g到底是什么6,Oracle11g六个重要进程
- 【以太坊】私有链和测试网的区别
- linux网络编程面试题,完美收官!字节4面斩下2-2Offer
- java读取文件替换字符,跳槽薪资翻倍
- 【深度学习入门到精通系列】Mean Iou
- 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY15-规则学习
- 图像标记工具Labelme和LabelImg