我感到困惑,爲什麼它被稱爲幻影查詢..例如,假設這3個查詢: -爲什麼叫幽靈查詢?
查詢1
SELECT * FROM users
WHERE salary BETWEEN 10000 AND 300000;
返回2個記錄。
查詢2
INSERT INTO users VALUES (3, 'Bob', 270000);
COMMIT;
查詢1再次
SELECT * FROM users
WHERE salary BETWEEN 10000 AND 30000;
返回3條記錄。
看來在我看來,正常。我不明白爲什麼他們被稱爲'幽靈讀'。所有交易都在不同的時間發生,所以我們總是得到最新的數據。最初有2條記錄,後來有1條記錄被插入..所以當我們再次運行查詢時,我們得到更新的數據,即3條記錄。那麼爲什麼它被稱爲幻影查詢。
如果他們發生在3個單獨的交易,那麼它不是一個幻影。幻象問題出現在同一事務不止一次執行範圍查詢並且在兩個查詢之間插入幻像行時。 –