mysql - 在 MYSQL 中使用触发器以更好地扩展的最佳替代方法是什么?
问题描述
我们有多个爬虫同时访问我们的 MYSQL 数据库,不断更新大量行。每个表都有触发器来评估爬虫发送的 UPDATE,随着我们进入项目,我们有越来越多的条件来验证触发器内的每个更新,因此我们担心这不是扩展的好方法. 主表有触发器,将数据发送到另一个也有触发器的表,该表发送到另一个有触发器的表。
我们正在考虑几个选项来避免开销、表锁定或此类麻烦。
到目前为止,我们认为我们需要放弃 MYSQL 或将另一个数据库引擎作为队列放在中间,并使用 Python 或 Node 处理信息,而不是评估那里的数据并仅在必要时直接插入/更新。
此外,由于我们主要是写入,我们在扩展和避免拥有一个巨大的单体时遇到了问题,但到目前为止我们还没有一个好的计划。
我在谷歌上搜索了很多关于一个好的架构的想法,大多数建议似乎都远离了 RDBMS。
TLDR:核心问题是,什么是避免由多个表中的触发器引起的开销的最佳方法是在多个条件下进行评估?是否使用其他方法更好地处理数据?
解决方案
如果您正在创建或更新特定实体中的记录,请在您的框架上使用侦听器。监听特定实体,在对应的表上插入一条新记录。这将避免触发器上的错误
推荐阅读
- php - 如何在 Wordpress 中设置 cookie?
- javascript - 将音频和视频 blob 组合成一个 blob 来为视频创建背景音乐?
- javascript - 如何检查数字是否大于 ECMAScript 中的 Number.MAX_SAFE_INTEGER
- java - Notesfactory 会话向邮件正文添加签名
- javascript - V-for 是在类更改时重新渲染所有组件
- javascript - 如何访问 AnyChartJS 中函数内传递的数据?
- python - 通过多处理管理器共享自定义类对象
- amazon-kinesis - 如果我们在 kinesis 中更改分区键会发生什么?
- c# - .Net Core 服务未注册
- java - Excel corrput 由于使用 apache-poi 库创建下拉列表