我很想知道使用 MySQL 作为键值数据库与 Redis/MongoDB/CouchDB 相比对性能的影响。我过去使用过 Redis 和 CouchDB,所以我非常熟悉它们的用例,并且知道在 NoSQL 和 MySQL 中存储键/值对会更好。
但情况是这样的:
- 我们的大部分应用程序已经有很多 MySQL 表
- 我们在 Heroku 上托管所有内容(只有 MongoDB 和 MySQL,每个应用程序基本上是 1-db-type)
- 在这种情况下,我们不想使用多个不同的数据库。
所以基本上,我正在寻找一些关于在 MySQL 中拥有键/值表的可伸缩性的信息。也许在三个不同的任意层:
- 每天 1000 次写入
- 每小时 1000 次写入
- 每秒 1000 次写入
- 每小时 1000 次读取
- 每秒 1000 次读取
一个实际的例子是构建MixPanel 的 Real-time Web Analytics Tracker 之类的东西,这需要根据流量经常编写。
Wordpress 和其他流行的软件一直在使用它:Post 具有“元”模型,它只是键/值,因此您可以向可以搜索的对象添加任意属性。
另一种选择是将可序列化的哈希存储在 blob 中,但这似乎更糟。
你怎么看?