人们对 Twitter 和 Facebook 等大型网站使用 NoSQL 数据库进行了很多炒作。然而,当我更仔细地研究这个问题时,似乎这个领域的大多数成功公司都在使用数据库技术的组合,使用 MySQL 作为主数据库,然后添加 NoSQL 数据库来添加缓存层等以提高性能。我还听说 Diaspora 最初使用 MongoDB 作为他们的主要数据库,然后不得不切换到关系数据库,因为 Mongo 不适合他们的需求。特别是,我听说表示用户之间的关系确实需要关系数据库或图形数据库。
但是,Spotify 似乎非常重视 Cassandra,它既不是关系数据库,也不是图形数据库。此外,虽然 Spotify 并不以社交网络闻名,但它确实包含一些功能,例如能够关注其他用户并查看他们一直在听哪些歌曲。如果这一切都是用 Cassandra 完成的,也许 Cassandra 非常适合社交网络,甚至代表用户之间的关系?谁能给我对此的任何见解?
编辑:我知道 Cassandra 不支持连接,但是尽管缺乏连接,是否有一种合理的方法可以用 Cassandra 表示社交图?另外,我对社交图谱的 Cassandra 与 SQL 比较特别感兴趣,而对 Cassandra 与图 DB 比较不太感兴趣。
最佳答案
Cassandra 非常适合使用简单的键值或分区内的 bigtable 式切片进行高速写入和读取。
Cassandra 非常不擅长将模型建模为 SQL JOIN 或搜索任意文本。
人们倾向于使用技术组合的原因是,不同的技术是针对不同的问题而设计的 - 针对搜索进行优化的工具(elasticsearch、solr 等)将在搜索类型问题上表现得更好,但不会”不具备从 Cassandra 获得的键/值查找的读/写吞吐量。
关于sql - Cassandra 适合作为社交网站的主数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002310/