接著上篇博客,我們來談?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

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(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)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

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

        		

網(wǎng)友評(píng)論