目前,我正在使用 MySQL,但我觉得它跟不上不断涌入的流数据。我在 MySQL 前面使用了 memcached 进行缓存,但大多数数据都是一次性访问的,因此缓存没有多大帮助。另一个问题是 ibdata 文件不断变大,即使删除数据也不会占用磁盘空间。
数据很短,平均 200 个字符。我只想存储数据并使用键检索它。没有复杂的数据关系。每小时大约有 1,000,000 次插入和获取,但数量越来越大。我甚至尝试了 Amazon RDS 服务,但同一区域内的 EC2 和 RDS 之间的延迟很慢,我开始收到 MySQL 连接过多错误。
我知道我必须使用 Nosql 类型的数据库,但不确定哪种。磁盘空间很重要,删除数据时我需要声明它。
答案1
只有你自己才能做出选择。http://nosql-databases.org/您可以从这里开始您的探索。
除了查看所有当前数据库外,您还可以比较它们的功能、选项和案例研究。这应该会为您指明正确的方向。
答案2
您是否考虑过使用更简单的数据存储,因为您不使用关系而只需要通过键进行查询?
我在想一些类似 Berkeley DB 的东西,或者Redis。
答案3
首先 - 在 SQL 世界中MySQL 是最快的引擎具有非常好的可扩展性。
- 我认为,你必须重新设计一些部件才能获得真正的性能,每小时 100 万次操作并非不可能的数字。
- 也许你会想要检查所有可能的后端引擎和在启动时使用的更改,微调 mysql 设置
- 首要的关键
- 持久连接
- 考虑跑步分析表(或者从命令行使用 myisamchk --analyze)来帮助 MySQL 更好地优化查询
- 使用插入延迟或者插入低优先级(对于 MyISAM)写入您的更改日志表。
- 如果从表中删除数据,则计划运行优化表定期查询
TBC,如果你想