我对于处理删除和同时选择查询的mysql处理程序有些困惑。我需要知道删除查询是否在表上运行,同时select也在运行该表,甚至同一行。
答案 0 :(得分:0)
MySql使用内部锁定机制。请检查以下链接还检查MySql中的锁定机制。
http://dev.mysql.com/doc/refman/5.6/en/internal-locking.html
答案 1 :(得分:0)
如果delete语句不是事务的一部分,那么引擎(大多数mysql引擎)将锁定相关的行,直到执行delete语句。
如果删除语句是正在进行的事务的一部分,则使用事务隔离级别确定访问该记录的能力。
事务隔离级别确定在提交事务之前,其他会话是否可以访问受事务语句影响的数据(在您的情况下为delete) 如果隔离级别被读取并且事务尚未提交,则事务块外部的任何select语句将检索旧数据,并且在提交事务之后,select将检索新数据。
有关隔离级别的更多详细信息,请查看此内容 http://dev.mysql.com/doc/refman/5.1/en/set-transaction.html