Advantages/disadvantages 使用 MySQL 触发器
Advantages/disadvantages of using MySQL triggers
使用 MySQL 触发器保持数据在一个 table 和另一个之间同步甚至更新 aggregate/report table 作为数据有什么 advantages/disadvantages变化?
aggregate/report tables 我的意思是 tables 总结了其他 tables 中存在的数据,例如:
tbl_user_location:
1 Mike New York
2 John London
3 Emily Paris
4 Jack New York
tbl_summary:
New York 2
London 1
Paris 1
随着数据在 tbl_user_location
中实时变化,摘要也会更新。
这种方法有哪些替代方法?
优点:SQL 触发器提供了 运行 计划任务的替代方法。在对表中的数据进行更改之前或之后自动调用触发器。
缺点:但是,SQL 触发器是从客户端应用程序不可见地调用和执行的,因此很难弄清楚数据库层中发生了什么。这可能会增加数据库服务器的开销。
如果您谈论的是高速数据,请不要考虑触发器。我建议你使用流处理技术。您可以 mysql 二进制日志来捕获事件并添加到流中,然后进行处理。简单的触发器对于实时数据聚合来说不是一个好主意。
试试下面这样的东西,你可能需要对这些进行一些搜索
例如:(mysql binlogs) maxwell->kafka->spark (processed data)
使用 MySQL 触发器保持数据在一个 table 和另一个之间同步甚至更新 aggregate/report table 作为数据有什么 advantages/disadvantages变化?
aggregate/report tables 我的意思是 tables 总结了其他 tables 中存在的数据,例如:
tbl_user_location:
1 Mike New York
2 John London
3 Emily Paris
4 Jack New York
tbl_summary:
New York 2
London 1
Paris 1
随着数据在 tbl_user_location
中实时变化,摘要也会更新。
这种方法有哪些替代方法?
优点:SQL 触发器提供了 运行 计划任务的替代方法。在对表中的数据进行更改之前或之后自动调用触发器。
缺点:但是,SQL 触发器是从客户端应用程序不可见地调用和执行的,因此很难弄清楚数据库层中发生了什么。这可能会增加数据库服务器的开销。
如果您谈论的是高速数据,请不要考虑触发器。我建议你使用流处理技术。您可以 mysql 二进制日志来捕获事件并添加到流中,然后进行处理。简单的触发器对于实时数据聚合来说不是一个好主意。
试试下面这样的东西,你可能需要对这些进行一些搜索 例如:(mysql binlogs) maxwell->kafka->spark (processed data)