我目前将所有数据都存储在MySQL数据库中,该数据库处理我的整个应用程序系统.我目前的设置是一个Java桌面应用程序,它通过NodeJS API将数据发布到数据库.有一个连接到此API的iOS应用程序以及允许人们查看数据的网站.该网站每秒为每个人更新屏幕上的数据.我担心随着用户的扩展,我将无法降低成本,因为每秒运行的查询包含大量的连接和排序.

我想要做的是添加像缓存一样的Mongo数据库.超时某些数据是从我的API插入MySQL的,我会让API运行密集查询并将结果存储在mongo数据库中.我目前不得不从查询中获取结果并将其转换为许多嵌套数组并以子形式返回.通过仅在数据更改时运行查询然后将其格式化存储到Mongo数据库中,我似乎可以节省大量时间/资源.

我实际上开始使用纯粹的MongoDB,但是她运行报告并分析我存储的数据类型.它确实需要存储规范化以便于报告.

这个想法看起来是否可行和实用?随着用户群的增长,我觉得我必须在MySQL方面进行大量扩展.

解决方法:

数据是什么样的?为什么每秒需要更新?等等(你的问题非常模糊;我的一些计划可能不适用,但如果不理解问题集,我无法分辨.)

计划A:

如果您更频繁地选择相同的查询而不是更改基础表,则MySQL的“查询缓存”可能是一个很好的解决方案.

query_cache_type = ON
query_cache_size = 100M -- No more (unless using Aurora)

其余的是自动化的.

B计划:

Redis或Memcached比其他数据库(例如MongoDB)提供更好的缓存工具.

计划C:

让我们看看你的查询,看看它们是否可以加速.更好的索引,重新排列架构,更好的查询等.

计划D:

设计一些“知道”数据是否已更改的方案,并避免重新执行查询.

标签:mysql,mongodb