SELECT * FROM Table1 WHERE conditions;
在执行当前读时,查询语句中的条件必须使用索引才能保证数据的一致性。大家还可以使用以下命令来设置当前读模式。
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
以上命令是将当前事务隔离级别设置为“读未提交”,这样可以读取到未提交的数据,但是会导致读到脏数据,因此需要谨慎使用。
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
以上命令是将当前事务隔离级别设置为“读已提交”,这样只会读取到已提交的数据,可以保证数据的一致性。
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
以上命令是将当前事务隔离级别设置为“可重复读”,这样在同一事务中的查询结果都是一致的,但是在多次查询间的结果可能会出现不一致的情况。
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
以上命令是将当前事务隔离级别设置为“串行化”,这样可以保证所有事务按顺序执行,也可以保证数据的一致性,但是会牺牲一定的性能。