Mysql分頁查詢丟失資料

2021-08-09 05:01:01 字數 461 閱讀 9880

將乙個sql的查詢結果集匯出為檔案,由於一次查詢結果集可能上百萬條,在開發環境和測試環境均造成了記憶體溢位的問題。因此改為分頁查詢資料的方式,雖然慢點,但是規避了記憶體溢位的問題。

但是,在這一百多萬條匯出的資料中,發現匯出的檔案中的資料與資料庫直接查詢出的資料不一致。偶發性的部分資料缺失,部分資料有重複,但是總條數一致。

最早懷疑是程式問題,但是最後發現程式沒問題,然後就把目光聚焦到了一直以為沒問題的sql上面。由於我的查詢sql最後是用時間來排序的,也就是:order by create_date desc。剛開始,我認為通過時間排序了,已經能保證資料的順序。但是,當我用了其他幾個欄位和事件一起做排序,保證每次查詢結果集的順序強一致性,就沒有發生過資料丟失或資料重複的問題。

在使用limit進行分頁時,一定要保證當前每次查詢結果集的順序一致性。不然可能會出現分頁資料順序不一致,導致分頁查詢的結果集和期望的結果集不一致。

Mysql 分頁查詢 快照 Mysql分頁查詢優化

select from orders history where type 8 limit 1000,10 該條語句將會從表 orders history 中查詢offset 1000開始之後的10條資料,也就是第1001條到第1010條資料 1001 id 1010 資料表中的記錄預設使用主鍵 一...

mysql 分頁查詢 失效 mysql分頁查詢

比如每頁10條,分頁查詢 語法 select from table limit offset,rows offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始行的偏移量是0 不是1 select from table limit 0,10 第一頁 select from t...

mysql 大資料分頁查詢

1.測試 limit start,count 分頁語句 select from product limit 10,20 0.016秒 select from product limit 100,20 0.016秒 select from product limit 1000,20 0.047秒 se...