使用 MySQL 触发器的优缺点

Ema*_*nas 2 mysql triggers database-design stored-procedures mysql-routines

使用 MySQL 触发器在一个表和另一个表之间保持数据同步,甚至在数据更改时更新聚合/​​报告表的优点/缺点是什么?

汇总/报告表是指汇总其他表中存在的数据的表,例如:

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
Run Code Online (Sandbox Code Playgroud)

随着数据的实时变化tbl_user_location,摘要中的数据也会更新。

这种方法有哪些替代方案?

小智 5

优点:SQL 触发器提供了一种运行计划任务的替代方法。在对表中的数据进行更改之前或之后会自动调用触发器。

缺点:然而,SQL 触发器是从客户端应用程序中隐式调用和执行的,因此很难弄清楚数据库层发生了什么。这可能会增加数据库服务器的开销。

如果您在谈论高速数据,请不要考虑触发器。我建议你使用流处理技术。您可以使用 mysql bin-logs 来捕获事件并添加到流中然后进行处理。对于实时数据聚合来说,简单地触发并不是一个好主意。

尝试如下操作,您可能需要对这些 Ex 进行一些搜索:(mysql binlogs)maxwell->kafka->spark(已处理的数据)