接著上篇博客,我們來(lái)談?wù)刯ava操作cassandra分頁(yè),需要注意的是這個(gè)分頁(yè)與我們平時(shí)所做的頁(yè)面分頁(yè)是不同的,具體有啥不同,大家耐著性子往下看。

  上篇博客講到了cassandra的分頁(yè),相信大家會(huì)有所注意:下一次的查詢依賴上一次的查詢(上一次查詢的最后一條記錄的全部主鍵),不像mysql那樣靈活,所以只能實(shí)現(xiàn)上一頁(yè)、下一頁(yè)這樣的功能,不能實(shí)現(xiàn)第多少頁(yè)那樣的功能(硬要實(shí)現(xiàn)的話性能就太低了)。

  我們先看看驅(qū)動(dòng)官方給的分頁(yè)做法

  如果一個(gè)查詢得到的記錄數(shù)太大,一次性返回回來(lái),那么效率非常低,并且很有可能造成內(nèi)存溢出,使得整個(gè)應(yīng)用都奔潰。所以了,驅(qū)動(dòng)對(duì)結(jié)果集進(jìn)行了分頁(yè),并返回適當(dāng)?shù)哪骋豁?yè)的數(shù)據(jù)。

一、設(shè)置抓取大?。⊿etting the fetch size)

  抓取大小指的是一次從cassandra獲取到的記錄數(shù),換句話說(shuō),就是每一頁(yè)的記錄數(shù);我們能夠在創(chuàng)建cluster實(shí)例的時(shí)候給它的fetch size指定一個(gè)默認(rèn)值,如果沒(méi)有指定,那么默認(rèn)是5000

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

// 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);

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  另外,statement上也能設(shè)置fetch size

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式