将简单的MySQL数据库转换为NoSQL解决方案

时间:2011-06-01 12:52:38

标签: mysql mongodb redis relational-database nosql

我有一个非常小的MySQL数据库,其中主表大约有300条记录,我偶尔会添加更多。该表存储了文件的位置以及我的用户可以访问的视频资产的一些元数据。 (电影标题,路径,关键帧名称,电影名称,文件名等)

我想把这张桌子移到一个内存解决方案中,但我现在很困惑,因为那里的选项有多少,真正最快,最轻的重量,最好的降价。

Redis的? MongoDB的?别的什么? MySQL可以在内存中运行吗?

我打算为不同的项目添加一些其他数据库。

这个运行的盒子是CentOS 5.6,16GB内存,我每天大约有100个访问者访问我的网站。

5 个答案:

答案 0 :(得分:1)

你需要问自己的第一件事是, 为什么要切换到NoSQL数据库?

答案可能是:您需要更快的速度 复制和分布式数据库系统, 您需要更多可用的存储空间 或复制。或者你想要受益 从更容易的发展。

但是从300条记录我不认为任何,但是 最后会帮助你。

我不认为你真的想要“记忆中” 解。在内存中意味着每个数据都只写入 ram,如果你关闭你的数据库,那么你的所有 数据丢失。如果你真的想要那么MySQL 有一个内存存储引擎。

否则所有数据库都会在内存中缓存 尽可能。 300条记录很可能是完整的 在你的内存也在MySQL下。你可能没有得到 切换到NoSQL数据库可以获得任何速度。

如果您一般打算切换到NoSQL数据库, 我更喜欢MongoDB。它是NoSQL和的混合体 和一个RDBMS,因为它为您提供了一种查询语言 强大几乎像SQL一样。你可以更好地扯掉它 比RDBMS。对我来说,编程将会很多 更容易对付无架构的数据库。您可以 将MongoDB扩展到1000台服务器。

但是其他NoSQL数据库具有更多的可扩展性。 如果您需要更多服务器,那么其他数据库也会 可能性更好。但是你失去了一些查询你的方法 数据

如果您通常计划切换到NoSQL数据库 我认为MongoDB可以解决这个问题。其他NoSQL数据库 对于某些特定情况可能更好而不是 一般用途。

答案 1 :(得分:0)

这取决于您希望如何访问/查询数据库中的记录。

MongoDB是一个文档存储,它可以充分利用Mysql的功能。但我不会说MongoDB是一个轻量级的解决方案。

Redis是一个快速的内存中键/值数据库。但您只能通过特定密钥访问您的记录。

答案 2 :(得分:0)

最简单的方法是使用MySQL MEMORY表引擎。它将所有数据存储在内存中,并在MySQL服务器停止工作时将其删除。

答案 3 :(得分:0)

最简单的事情就是配置mysql,以便将所有内容保存在内存中(你有足够的内容)。

请在此处查看有关缓冲池大小的答案 Is it possible to load a database in the RAM?

使用这么小的表,即使使用默认配置,出于所有实际目的,它可能已经在RAM中

答案 4 :(得分:0)

有300条记录,你不会看到任何可衡量的好处转移到nosql系统。

是的,MySQL可以使用内存作为存储表的基础 - 但是如果整个数据库小于系统上的可用内存量,那么它真的不值得努力 - 大多数现代操作系统(包括Linux)都会非常很少需要从磁盘读取 - 并且您没有在磁盘上维护数据库副本以便在重新启动后继续存在的麻烦。

您的数据库很小。 “我每天大约有100位访问者访问我的网站”这是一个非常无意义的指标,但确实意味着非常低的流量。

16GB RAM是一个很大的内存 - 如果您处理大量媒体文件,它可能就是您的应用程序所需的内容。

相关问题