使用MySQL触发器保持数据在一个表与另一个表之间同步,甚至在数据更改时更新聚合/报表表有哪些优点/缺点?
通过聚合/报告表,我指的是汇总其他表中存在的数据的表,例如:
Houses
当数据在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
中实时更改时,摘要会更新。
这种方法有哪些替代方案?
答案 0 :(得分:3)
优势:SQL触发器提供了另一种运行计划任务的方法。在对表中的数据进行更改之前或之后,会自动调用触发器。
缺点:但是,从客户端应用程序中无形地调用和执行SQL触发器,因此很难弄清楚数据库层中发生了什么。这可能会增加数据库服务器的开销。
如果你在谈论高速数据,甚至不考虑触发器。我建议你选择流处理技术。您可以使用mysql bin-logs捕获事件并添加到流中然后进行处理。对于实时数据聚合,简单触发不是一个好主意。
尝试下面的内容,您可能需要对这些内容进行一些搜索 例如:(mysql binlogs)maxwell-> kafka-> spark(已处理数据)