Phoenix客戶端鏈接Hbase遇到的分頁問題小結

上邊搭建環境的時候提到phoenix 高版本支持limit offset進行分頁,確實有了這個挺方便的。可是在使用過程當中也遇到了點問題,就是帶有order by時,直接在order by 以後使用limit offset 會出現問題,並且官方文檔這塊說實話寫的不太詳細。所以,本身在遇到這個問題的時候花了點時間摸索最終順利把問題解決。所以在這裏作下簡單的總結:spa

1) 不帶排序的狀況:select * from table_name limit  X offset X  這仍是能夠的排序

2)帶排序的狀況, 而且多表關聯查詢,在這裏舉一個工做中的例子大概來講明一下:文檔

SELECT * FROM 
        (
            SELECT it

                    <!--注意這裏不能含有* 不然出錯-->
                   A.TOPIC_ID TOPIC_ID, A.MEDIA_PLATFORM_ID MEDIA_PLATFORM_ID, 
                   B.INFO_ID INFO_ID, B.INFO_HEADLING INFO_HEADLINGtable

            FROM INFO_STATISTICS AS B INNER JOIN TOPIC_INFO_RELATED AS A 
            ON A.INFO_ID = B.INFO_ID 
            WHERE A.TOPIC_ID = #{topicId}
            <if test="startDate != null and endDate != null">
                AND A.PUBLISH_DAY BETWEEN #{startDate} AND #{endDate}
            </if>
            order by B.HEAT_RATE desc
            offset #{start}
        ) limit #{rows}test

不過換成了這種以後查詢效率明顯要慢了,不過解決了個人問題。效率

若是你們有好的解決辦法,歡迎分享。。。。。。。。。。。。select

相關文章
相關標籤/搜索