【发布时间】:2016-09-23 08:32:45
【问题描述】:
您好,以下是问题场景:
我正在使用 MYSQL(Innodb 引擎),我的一个应用程序(C++/MYSQLCAPI)正在执行以下操作:
开始交易
截断 my_table
将数据 infile 加载到表 my_table 中。
如果上述命令 [truncate 和 load ] 都成功则 COMMIT
否则回滚
现在另一个应用程序(C++/MYSQLCAPI)通过以下命令每秒读取此表。
从 my_table 中选择 *
错误:在此读取尝试中,有时它会获得 0 数据,这可能是什么原因?
【问题讨论】:
-
我猜读者没有得到数据,因为他试图设置一个读锁(取决于隔离级别)并且因为你的事务而没有获得锁。这样他就可以尝试使用 nolock 进行 reda。
-
不,阅读器应用程序没有使用任何锁。