cassandra的索引查詢和排序
轉自:http://zhaoyanblog.com/archives/499.html
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 |
|
相關文章
- 排序和查詢排序
- cassandra查詢效率探討
- cassandra高階操作之索引、排序以及分頁索引排序
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- 全文索引和查詢概念索引
- 表和索引並行查詢索引並行
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- Java陣列排序和查詢Java陣列排序
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 折半查詢排序樹畫圖和排序
- 查詢與排序02,折半查詢排序
- GaussDB(for Cassandra)新特性發布:支援Lucene二級索引,讓複雜查詢更智慧索引
- MySQL 學習之索引篇和查詢MySql索引
- oracle 索引升降序及排序條件 對查詢計劃的影響Oracle索引排序
- elasticsearch之多索引查詢Elasticsearch索引
- Elasticsearch(三):索引查詢Elasticsearch索引
- 查詢索引 常用SQL索引SQL
- 查詢相似的索引索引
- SQL Cookbook—查詢、排序SQL排序
- kdb+/q的列表排序和查詢效能測試排序
- 查詢與排序05,氣泡排序排序
- 查詢與排序04,插入排序排序
- 查詢與排序03,選擇排序排序
- 索引監控-查詢從未被使用過的索引索引
- SQL查詢的:子查詢和多表查詢SQL
- 走索引掃描的慢查詢索引
- 查詢某個表的索引資訊索引
- 比較有索引和無索引的查詢速度(在mysql資料庫中)索引MySql資料庫
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 【索引】反向索引--條件 範圍查詢索引
- MongoDB慢查詢與索引MongoDB索引
- 字母索引查詢ListView元件索引View元件
- mysql查詢索引結構MySql索引
- 反向索引與模糊查詢索引
- 分頁查詢的排序問題排序
- MySQL-效能優化-索引和查詢優化MySql優化索引
- 資料庫排序查詢資料庫排序
- Sql 查詢 置頂、排序,置頂和非置頂為不同的排序欄位SQL排序