接著上篇博客,我們來談談java操作cassandra分頁,需要注意的是這個分頁與我們平時所做的頁面分頁是不同的,具體有啥不同,大家耐著性子往下看。
上篇博客講到了cassandra的分頁,相信大家會有所注意:下一次的查詢依賴上一次的查詢(上一次查詢的最后一條記錄的全部主鍵),不像mysql那樣靈活,所以只能實現(xiàn)上一頁、下一頁這樣的功能,不能實現(xiàn)第多少頁那樣的功能(硬要實現(xiàn)的話性能就太低了)。
我們先看看驅動官方給的分頁做法
如果一個查詢得到的記錄數(shù)太大,一次性返回回來,那么效率非常低,并且很有可能造成內(nèi)存溢出,使得整個應用都奔潰。所以了,驅動對結果集進行了分頁,并返回適當?shù)哪骋豁摰臄?shù)據(jù)。
一、設置抓取大?。⊿etting the fetch size)
抓取大小指的是一次從cassandra獲取到的記錄數(shù),換句話說,就是每一頁的記錄數(shù);我們能夠在創(chuàng)建cluster實例的時候給它的fetch size指定一個默認值,如果沒有指定,那么默認是5000
// At initialization:Cluster cluster = Cluster.builder() .addContactPoint("127.0.0.1") .withQueryOptions(new QueryOptions().setFetchSize(2000)) .build();// Or at runtime:cluster.getConfiguration().getQueryOptions().setFetchSize(2000);
另外,statement上也能設置fetch size
網(wǎng)友評論