在我的web應用程序(Java + Spring + JPA)中,我有一個方法執行一組相關的查詢。特別是我需要知道某個表的總行數和某個查詢的結果集的行數。如何避免在進行一組查詢時更改數據庫?
顯然,這兩個查詢的變化可以在我的表發生之間:一個新行補充道,行刪除,字段值等改變
表有數百萬行,所以這是不可能加載整個表中存儲並在應用程序環境中進行過濾。
所以,我需要找到一種方法來執行一組查詢,維護表(相同的快照)相同的「狀態」。 在同一個事務中執行查詢是否足夠,還是有其他方法?
UPDATE 該方法用於表格分頁。我需要顯示從t現有行(TOTAL)中過濾的行(PAGE)取自的頁面(SEARCH)。
所以基本上我需要提取n條記錄並提供兩個數字信息:過濾行數和總行數。
我可以執行SELECT count(*) from table
,然後SELECT count(*) from table where <search criteria>
然後SELECT * from table where <search criteria> limit <n>
,但我必須確保沒有任何變化之間appens在...
我使用MySQL 5
@AndreiI更新 – davioooh