我可以将雪花用作关系数据库吗?



我们正在使用的SaaS工具之一是使用MySQL数据库作为其主数据库。除了与用户相关的数据外,它还会收到一些点击流和各种其他信息。

关于该数据库:

  • 桌子: 11
  • 最大表中的行数:7,000,000
  • 总大小:17GB
  • 每日写入:50,000
  • 每日阅读量: 1,000

Snowflake能否取代MySQL数据库,我们可能期望什么样的性能提升?

由于以下原因,我建议避免使用面向写入的规范化关系数据库进行报告(即使它是雪花式的模式)。数据库似乎更面向写入,可能会发生大量事务。

  1. 数据库不是为报告而设计的。您仍然需要执行大量联接才能获得结果,否则可能需要非规范化。

  2. 读取器阻止编写器。当您尝试读取以报告目的时,由于读取了大量数据,表上可能会发生锁定升级,并且可能会设置表级锁定。由于此锁定,编写器将被阻止,并可能导致事务超时。

  3. 对规范化数据库进行大量报告可能会给服务器带来额外的负载,并可能影响服务器性能。

我建议您使用复制,ETL等创建副本数据库,并将其用于报告目的。

正如所问,答案是"是"。

需要注意的是,雪花不强制PK或FK约束!(仅空/不为空。因此,您的应用程序将需要对此进行管理。正因为如此,我认为Snowflake不是一个完整的RDBMS(关系数据库管理系统),因为该定义意味着关系管理由系统处理。

我也同意@venkataraman-r的观点,Snowflake在OLTP行为上表现不佳。因此,您需要仔细管理这种行为。

相关内容

  • 没有找到相关文章

最新更新