数据插入到多个服务器的表中@ 100-200个插入/秒的速率。每个服务器按照id顺序读取该表中的所有行,并在每隔几秒运行一次的计时器线程中处理数据。读入的最后一个ID存储在内存中,并在下次查询时再次使用。MySQL读取返回后面的行,但不返回前面的行
发生什么事是一些行不被读取数据的函数读取;当插入率很高时,会跳过它们。
这是场景。
读取数据的函数读入数据直到ID 100,它现在试图读取ID大于100的行。返回的行是101,102,104,105。第103行被跳过(尽管它存在)。
发生什么事的当前工作原理是,由于数据是由多个服务器插入的,所以当读取发生时,行103没有被提交,因此不作为结果集的一部分返回。提交可能发生在这次阅读之后。事务隔离级别设置为'REPEATABLE-READ'。
有没有人遇到过这样的事情?它是如何处理的。欢迎任何建议。
编辑:我正在寻找一种方式来阅读所有的行顺序没有任何差距。
感谢您的确认。我编辑了这个问题,但我正在寻找一种方法来按顺序读取所有行。 – smahesh 2011-05-19 21:54:19
+1进行确认 – smahesh 2011-05-19 23:40:25