我正在设计一个基于内容的网站,能够管理大量的页面(大部分是网页;图像、视频等将存储在文件系统中)。哪个更快/更有效率/最稳定:
传统的数据库(如( MySQL)将每个网页存储为一行,索引位于策略位置或
基于键/值的NoSQL数据库(例如。( MongoDB)其中的键类似于页ID_TITLE或页ID_BODY等。
这两个选项都可以允许缓存(无论是内置的还是自带的)。
我不想直接比较MySQL和MongoDB,而是SQL键/值
谢谢
发布于 2017-01-02 21:24:43
这是一个非常开放的问题,有很多的考虑和选择,更多的是“意见”而不是“事实”。所以,我不会试图给出一个答案,而是指出一些重大的差异和问题。
如果您唯一需要的是存储密钥/值对(page_id,body),那么键/值数据存储就可以很好地匹配您的需要。您可以使用Riak、Oracle NoSQL和其他几个工具(可以查看维基百科以获得更长的列表)。您可以非常快地访问您的bodies (或titles);通常您还可以获得一些简单的切分和复制(即: MongoDB),如果您需要非常大量的数据,它允许非常好的水平可伸缩性。
您没有得到的是一种简单的加入数据和查询方法。如果有一天你决定有一个(例如)文章作者的列表,或者文章评论,或者其他什么,那么键值存储可能不再那么舒服了。
根据经验,键值存储或文档存储要求您提前很好地计划如何使用数据,因为文档的结构必须反映这种用法。关系数据库基于结构化表,您可以在其中存储可以轻松搜索和已加入的信息。
大多数当代SQL数据库允许将SQL与JSON (或文档)混合在一起,这些组合可以被认为是“两个世界中最好的组合”。例如,您可以检查PostgreSQL商店 (它在SQL数据库中为您提供键值存储),或者使用使用MySQL的JSON、PostgreSQL、甲骨文、SQL Server等。
您可以检查以前的问题,如使用SQL还是NoSQL?或我应该在这个特定的设计(调查)中使用SQL或NoSQL吗?。
我也推荐SQL的不同之处
https://dba.stackexchange.com/questions/159760
复制相似问题