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

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

// 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培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

  另外,statement上也能設置fetch size

        		

網(wǎng)友評論