Let's say we have a big table with hundreds of million of rows (or more).
On one connection, we perform a query requiring full table scan under
READ COMMITTED isolation level:
SELECT * FROM bigtable;
On a different connection, we perform an update to a row in the table with auto commit on, slightly after the SELECT statement started executing in the other connection:
UPDATE bigtable SET value_col = <new_value> WHERE pk_col = <key>;
Is the SELECT statement, which is executed under
READ COMMITTED isolation level, guaranteed to read all rows as they are in the table when the SELECT statement starts executing? Or could the SELECT statement read the value as updated by the second connection?