接著上篇博客,我們來談?wù)刯ava操作cassandra分頁,需要注意的是這個(gè)分頁與我們平時(shí)所做的頁面分頁是不同的,具體有啥不同,大家耐著性子往下看。
上篇博客講到了cassandra的分頁,相信大家會(huì)有所注意:下一次的查詢依賴上一次的查詢(上一次查詢的最后一條記錄的全部主鍵),不像mysql那樣靈活,所以只能實(shí)現(xiàn)上一頁、下一頁這樣的功能,不能實(shí)現(xiàn)第多少頁那樣的功能(硬要實(shí)現(xiàn)的話性能就太低了)。
我們先看看驅(qū)動(dòng)官方給的分頁做法
如果一個(gè)查詢得到的記錄數(shù)太大,一次性返回回來,那么效率非常低,并且很有可能造成內(nèi)存溢出,使得整個(gè)應(yīng)用都奔潰。所以了,驅(qū)動(dòng)對(duì)結(jié)果集進(jìn)行了分頁,并返回適當(dāng)?shù)哪骋豁摰臄?shù)據(jù)。
一、設(shè)置抓取大?。⊿etting the fetch size)
抓取大小指的是一次從cassandra獲取到的記錄數(shù),換句話說,就是每一頁的記錄數(shù);我們能夠在創(chuàng)建cluster實(shí)例的時(shí)候給它的fetch size指定一個(gè)默認(rèn)值,如果沒有指定,那么默認(rèn)是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上也能設(shè)置fetch size
網(wǎng)友評(píng)論