1. 程式人生 > >千萬級資料庫分頁優化

千萬級資料庫分頁優化

今天接到一個五千萬的資料庫檔案,需要洗一遍資料,洗資料的時候遇到兩個問題

原始資料沒有主鍵 需要手動新增

ALTER TABLE `tablename` ADD COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);

5000萬資料大概執行了十五分鐘左右

limit 查詢資料變慢

優化查詢語句由

select * from `tablename` limit 10000, 1000

改為

select * from `tablename` where id >10000000  limit 0, 1000

這樣修改後查詢效率由原來的8s左右變為1s以內

分析 : mysql分頁查詢是先把分頁之前資料都查詢出來了,然後擷取後把不是分頁的資料給扔掉後得到的結果。所以資料量太越大分頁越慢。
但是我們可以先把需要分頁的id查詢出來,因為id是主鍵id主鍵索引,查詢起來還是快很多的,然後根據id連線查詢對應的分頁資料