數據插入到多個服務器的表中@ 100-200個插入/秒的速率。每個服務器按照id順序讀取該表中的所有行,並在每隔幾秒運行一次的計時器線程中處理數據。讀入的最後一個ID存儲在內存中,並在下次查詢時再次使用。MySQL讀取返回後面的行,但不返回前面的行
發生什麼事是一些行不被讀取數據的函數讀取;當插入率很高時,會跳過它們。
這是場景。
讀取數據的函數讀入數據直到ID 100,它現在試圖讀取ID大於100的行。返回的行是101,102,104,105。第103行被跳過(儘管它存在)。
發生什麼事的當前工作原理是,由於數據是由多個服務器插入的,所以當讀取發生時,行103沒有被提交,因此不作爲結果集的一部分返回。提交可能發生在這次閱讀之後。事務隔離級別設置爲'REPEATABLE-READ'。
有沒有人遇到過這樣的事情?它是如何處理的。歡迎任何建議。
編輯:我正在尋找一種方式來閱讀所有的行順序沒有任何差距。
感謝您的確認。我編輯了這個問題,但我正在尋找一種方法來按順序讀取所有行。 – smahesh 2011-05-19 21:54:19
+1進行確認 – smahesh 2011-05-19 23:40:25