update_time >:sql_last_value AND update_time < NOW()寫法沒有等號可能漏掉一些增量
我看了徐老師講到如下寫法是3.0的寫法
SELECT * FROM t_blog WHERE update_time >:sql_last_value AND update_time < NOW() ORDER BY update_time desc
我感覺如果? update_time >:sql_last_value 沒有帶等號的話,一定會漏掉一些增量,因為你這樣根本無法保證R12或R22的數(shù)據(jù)會掃描到?后面的總結3.0的時候,感覺沒有講透講清楚。
麻煩徐老師解釋下如上問題,謝謝!
2022-01-21
假如2022:01:01 00:01插100條
第一次搜
>1979:01:01 00:00 < 2022:01:01 00:01
你可能根本就搜不出來,因為條件是少于當時系統(tǒng)時間00:01
其實就是搜索了
>1979:01:01 00:00 < 2020:01:01 00:00這個范圍而已
所以這時候插入的數(shù)據(jù)根本沒匹配到數(shù)據(jù)
注意這里保存的時間點可能是00:00,但絕對不是00:01
所以第二次搜的時候是>00:00而不是>00:01
>2022:01:01 00:00 < 2022:05:05 00:01
這里為什么是00:00而不是00:01呢,因為第一次搜的時候是記錄<少于不是=的時間點
其實老師這個語法只是把當前時間插入的100條數(shù)據(jù)放棄搜索不處理而是供給下次執(zhí)行搜索的范圍做條件