我使用的是galera集群(mariadb 10.2,2 nodes+garb,master-master),我注意到在某些情况下(更大的负载)在读取之前插入的获取行失败。它是在一个db连接到一个群集节点的过程中发生的,因此它不应该受到复制延迟的影响。
这种情况很少见,但有时在更大的负载和更多的并发连接写入同一个db表时会发生。
所有查询都以自动提交模式发送,因此没有显式事务。但如果插入是在显式事务中完成的,而在自动提交的查询中获取,则情况是一样的,我使用的是来自php脚本的mysql pdo。
查询可以通过以下方式进行:
-- insert into table
INSERT INTO t ...;
-- fetch id of inserted row to variable
SELECT LAST_INSERT_ID();
-- fetch row by id
SELECT * FROM t WHERE id=$id;
-- -> no row found
普拉斯,你知道哪里出了问题,是什么导致了这种行为吗?
暂无答案!
目前还没有任何答案,快来回答吧!