由於項目需要遇到如下問題:
人機界面程序要查看數據庫中的數據,其中有個表的數據已經有上千萬行了,要一次加載並顯示在界面上估計要消耗要好幾個GB的內存,所以考慮採用分頁查找的方式。
具體解決方案:
1,查找總共有多少行rowcount,採用如下的查詢語句:
select count(*) from tableName
另外information_schema庫中的Tables表中,也能夠查詢到所需表的行數,但查詢到的只是個近似的行數,不精確,但這樣查找的話效率會高很多。
2,規定每頁顯示n行,並計算出總共需要顯示多少頁
3,一次只查詢一頁的數據,比如第m頁,查詢語句如下:
select * from tablename limit (m-1)*n,n
仍然存在的問題:
1,select count(*) from tableName的效率有點第,得需要10s以上
2,當查詢後面的頁的數據時,效率較低,大約需要幾十秒