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(已处理的数据)