gpt4 book ai didi

mysql - 异步写入多个 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 08:40:11 26 4
gpt4 key购买 nike

我使用的是 AWS RDS,因此区域之间的数据库复制是不可能的。

我的应用程序用 PHP 编写并部署在所有区域,我正在寻找一种快速可靠的方法来实现这一目标。

我将建立 MySQL 连接:

设置@@auto_increment_increment=NUMBER_OF_WRITEABLE_DATABASES;

设置@@auto_increment_offset = REGION_ID;

因此,AI pk 在各个地区都是独一无二的。

我当前的计划是保留一个查询日志表,其中字段=> id、queries、status、user_id。它将在同一页面加载中将所有插入、更新、删除查询记录到查询字段中。

状态代码:

状态 0 => 未执行

状态 1 => 在所有区域成功执行

状态 2 => 失败

状态 3 => 失败,受影响的行不匹配

示例行:

id=>1查询=>插入配置文件值 (1,{USER_ID},'用户名','电子邮件')##SEPERATOR##AFFECTED_COUNT更新用户设置 last_modified='2012-12...' 其中 id={USER_ID}##SEPERATOR##AFFECTED_COUNT状态=0user_id=>{USER_ID}

并且将会有一个守护进程读取状态!= 1的记录,并将在所有区域上处理它们而不提交,一旦所有运行没有错误,它将提交或在出现错误时回滚。

这就是我的想法和将要使用的。

我的问题是对于这种情况有没有更合适/经过测试的方法,或者我的方法是否有任何问题。

提前致谢

最佳答案

我最初的想法是,如果您尝试使用 RDS 作为跨多个区域强制执行唯一记录 ID 的解决方案,那么您就走错了路。我认为您可能需要重新考虑跨区域唯一性的实际需求,或使用多个列(即自动增量加区域标识符)强制唯一性。可以读取这些数据并将其放入一些最终一致的数据存储中以用于读取目的。

关于mysql - 异步写入多个 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14037229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com