2

使用 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

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

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

4

1 回答 1

5

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

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

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

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

于 2016-07-02T16:24:19.287 回答