【问题标题】:What is the best/most efficient DBMS for a social networking website?对于社交网站来说,最好/最有效的 DBMS 是什么?
【发布时间】:2013-10-09 05:13:20
【问题描述】:

我想建立一个社交网站,我想知道什么是用于此类网站的最佳 DBMS。

我知道这个问题已经被问过一百万次了,而且总是带着新手一样的自命不凡的傲慢:我想要我的网站的“最佳”! :-)

我也明白在这种情况下没有“最佳”。每个开发人员都想象/喜欢他们的数据以不同的方式结构化/相关/存储。但我不知道从哪里开始成为新手。我知道 mySQL 可能是最受欢迎的,我一直听说 MongoDB、CouchDB、Cassandra..

我喜欢关系数据库的想法。这是有道理的,这是自然的,人性的。但作为一名程序员/Web 开发人员,我使用类、对象、键和属性,我相信数据库应该反映面向对象的特性。我认为 noSQL 类型的数据库就是这样工作的,尽管我不确定如何。但是,对我来说更有意义的是,如果我在代码中构建/使用对象、具有嵌套对象和数组的对象并且我想将它们存储在数据库中,我不妨以类似/等效的方式存储它们。

无论如何,有人能指出我正确的方向吗,因为我需要从某个地方开始,看看它会把我带到哪里! :-)

顺便说一句,愚蠢的新手问题现在向你提出:如果我建立数据库和网站,但最终决定我应该使用不同的数据库,这就是“迁移”之类的事情(例如从mySQL 到 noSQL,反之亦然)可能用于实时网站或噩梦?

提前感谢您的帮助!

【问题讨论】:

    标签: mysql sql web relational-database database


    【解决方案1】:

    首先,这取决于您用于社交网站的技术。 我会尝试根据我在 .Net 技术方面的经验来帮助你。

    使用实体框架可以实现使您的数据库面向对象且独立于 DBMS。 Hibernate 也为 java 语言提供了这样的可能性,但无法比较这两种技术。

    现在对于 DBMS,正如你所说,有多种选择,但选择取决于它们的数据使用、更新频率、请求、预期用户的数量……而且还可以根据需要使用多个 DBMS约束。

    例如,当你使用缓存的用户数据时,我建议使用 SQLite 来释放服务器内存,它也可以用于参数数据(可以与实体框架一起使用)。 对于历史数据,SQL Server 可能是一个不错的选择。 MySQL 也可用于最常见的数据。

    您看,您的技术没有“最佳选择”,这完全取决于您的需求和限制。

    希望会有所帮助。

    【讨论】:

    • 感谢您回复蒙吉。我将使用的语言是 Javascript,包括客户端和服务器端(Node.js)。我已经在网上阅读了很多内容,并且开始倾向于使用 MongoDB。但是,我仍然没有找到 MongoDB 的全面指南。非常感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 2011-04-09
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多