mysql - 我可以将 Snowflake 用作关系数据库吗?
问题描述
我们正在使用的 SaaS 工具之一是使用 MySQL 数据库作为其主数据库。除了与用户相关的数据外,它还接收一些点击流和各种其他信息。
关于那个数据库:
- 表:11
- 最大表中的行数:7,000,000
- 总大小:17GB
- 每日写入:50,000
- 每日阅读:1,000
Snowflake 能否取代那个 MySQL 数据库,我们可以期待什么样的性能提升?
解决方案
由于以下原因,我建议避免用于报告的面向写入的规范化关系数据库(即使它是雪花类型的模式)。数据库似乎更面向写入,并且可能发生大量事务。
该数据库不是为报告而设计的。您仍然需要进行大量连接才能获得结果,否则您可能需要非规范化。
读者阻止作者。当您出于报告目的而尝试读取时,由于正在读取大量数据,表上可能会发生锁定升级,并且可能会放置表级锁定。由于这个锁,作者将被阻止,并可能导致事务超时。
对规范化数据库进行大量报告可能会给服务器带来额外的负载,并且会影响服务器性能。
我建议您使用复制、ETL 等创建副本数据库并将其用于报告目的。
推荐阅读
- python - 如何修复 WingIDE for python 3 上的制表符和空格不一致?
- php - 带有联合的 sql 查询到 laravel 查询
- c++ - ffmpeg 将无效的 fps 写入 mp4 容器(在 avi 中它是真的)。是什么原因?
- java - 我希望附近的用户帖子显示在顶部。我还将位置保存在帖子中
- sql - SQL查询-如何在不超过一定工资限额的情况下给员工加薪
- javascript - 如何阻止输入元素的焦点来回跳跃?
- angular - Angular 2+ 自定义日期管道名称
- jquery - 如何在jquery中按类获取倒数第二个元素?
- python-3.x - 我想用python在文本文件的每一行中的'http'之前添加新行
- python - 用于处理实时流市场数据的 Python 中性能最高的数据结构