在构建社交网站中,MySQL 和 MongoDB优缺点大比拼

news/2024/5/13 5:17:23/文章来源:https://blog.csdn.net/sunsi001/article/details/80123838

在项目的规划和发展过程中,最关键的一步是要选择合适的数据库。如果选择错误的话,将会花费你大量时间和金钱,并且在这过程中还会惹毛很多的客户。当在他们预期方式中使用时,MongoDB和MySQL都是非常优秀的数据库,但究竟哪个才是构建社交网络最好的数据库呢?

MongoDB是什么?

MongoDB是一个NoSQL数据库,这意味着相关数据存储在单个文件的快速检索。这通常是一个很好的模型,数据不需要在多个文档中复制(这可能导致不一致)。

(图)

一个MongoDB文档的例子。来源: MongoDB

MongoDB在这种情况下易于扩展,所以数据库可以快速水平增长,同时能自动保持事物井然有序。当你有大量的数据时,同时需要快速响应时间,选择MongoDB可能会特别好。

MySQL是什么?

MySQL是一个关系数据库,这意味着数据存储(最好)在标准化的表中,所以没有重复。当你始终需要一致的和可靠的数据时(如个人信息或财务数据),选择MySQL是一个很好的模型。

图片描述

一个MySQL表的示例。来源: MySQL

而水平扩展可就难多了,它坚持ACID模型(原子性、一致性、隔离、耐久性),这意味着你可以更少担心数据的可靠性。

社交网络是如何工作的呢?

社交网络为人们提供不同的连接方式。无论是通过相互的友谊,业务伙伴,或著名的人或业务的更新,在社交网络上获取信息有许多的方法。

连接的关键因素是:对于任何一个用户连接或跟随,该人通常会看到从所有这些连接到系统登录的更新。

图片描述

一个社交网络关系图的例子。来源: SarahMei.com

数据库的比较

鉴于社会数据有不同的关系,尤其是用户,随着时间的推移,它作用于更好的关系数据库。尽管NoSQL的解决方案如MongoDB看起来像是快速检索大量数据的好方法,然而用户在社交网络关系性质上可能会导致许多重复发生。

这样重复数据随着时间推移本身会变得不一致和/或不可靠,或如果重复删除,查询会变得更加难以处理(因为文档可能需要指向其他文档,这不是最佳的NoSQL数据库)。

因此,MySQL是更好的推荐,因为它有数据的可靠性和关系工具来处理交互和众多用户之间的关系。你也可以利用MySQL和MongoDB两个数据库的最佳特性,将它们一起使用。


原文:MySQL vs. MongoDB: The Pros and Cons When Building a Social Network (译者/孙思)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_899171.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看…

强烈推荐几个比较好的Java代码查询网站

这些是我经常使用的一些Java代码查询网站,希望在这里能起到抛砖引玉的效果,大家群策群力,一起分享Java快乐。 1. java2s http://www.java2s.com/ 这个网站非常好,分成三大类,分别是 Example、 Products、 Articles&a…

今天在做网站中..........

程序员协会的网站已经拖了半年了,呵呵,一直想做 在听蓝色生死恋,嗯嗯,过去只是在街上听过,昨天晚上到Baidu找了半天,上传上来,大家共享一下! 心情不咋样,早上抓了几个学…

如何用初级的JavaWeb知识写一个较简单的网站(一)

本人JavaWeb初学者,这是学校一门课程的期末作业,之前已经写了不少了,但是由于一点误操作,导致项目有点崩盘,加上心态不是很好,所以把整个项目全部删除重做,这里记录一下我写整个项目的全过程。 …

如何用初级的JavaWeb知识写一个较简单的网站(二)

好了,废话不多说,我们接着上次的项目继续开发 我们现在先暂时开发用户登录注册界面,上次我们已经完成了项目的初期准备,完成了建表、User实体类和UserDao的书写,下面我们开始套页 这里的前台页面是由一名前端程序员写…

影响网站打开速度的9大因素

再好的网站,如果打开速度慢,10个人会有9个人选择离开,我归纳了大约9大影响网站打开速度的因素,但网站页面显示的速度取决于众多的因素,包括服务器性能、网络传输质量、网站的带宽、DNS解析、网页内容包括涉及到的JS代码…

提高网站打开速度的7大秘籍

很多站长使用虚拟主机来做网站,网页内容一旦很多,网站打开速度就会特别慢,如果说服务器、带宽、CDN这类硬指标我们没有经济实力去做,不妨通过网页代码优化的方式来提高速度,卢松松总结了一些可行性的方法。 1: 缩小Jav…

12个在线网站测速工具——web性能

网站的访问速度对于一个网站非常重要,没有一个人会喜欢速度慢的网站。下面是12款在线测试网站的访问速度和性能的工具,在优化网站的时候很有用。 Pingdom 测试网站每个元素的加载速度,比如html、图片、JS文件等等。 GTmetrix GTmetrix集合…

谷歌搜索将衡量网站速度

据国外媒体报道,Google搜索结果排名将考量网页加载速度因素,网页加载速度慢的网站的Google搜索结果排名很可能会下滑。 Google的两位首席搜索工程师阿米特‧辛格哈尔(Amit Singhal)和马特•卡茨(Matt Cutts&#xff09…

怎样让网站的文章(内页)快速收录和发外链的方法

做网站的站长们都知道,网站的文章的收录数量往往决定着网站的权重和网站的排名,所以一些站长对于网站的索引量看的极其重要。而最让人头疼的是,有时候当你费尽心思的写出一篇高质量的原创文章发表到网站以后,却迟迟不被收录&#…

windows server服务器上部署java+tomcat网站域名配置

windows server服务器上部署javatomcat网站域名配置 如果只是部署java项目的话,可以把IIS删除,然后在服务器上安装jdk tomcat 配置好环境变量,就和你在自己计算机上开发一样,把你的项目war包拷到tomcat下的webapps里(…

python使用selenium爬取网站流程 适用于抓取使用了js等异步加载技术的网站

Python使用urllib.open再配合BeautifulSoup解析是最快的网页抓取方式,但部分网站做了反爬,用这种抓取方法会出错,就是浏览器里看网页内容是有的,但Python里抓出来的是空架子无数据。这种时候可以F12观察网站是否有直接的数据接口返…

应用程序和网站中创建几乎任何类型的工业条码控件BarcodeX.NET

BarcodeX.NET条形码控件是一种.NET WinForms组件和ASP.NET服务器控件,它可以在您的应用程序和网站中创建几乎任何类型的工业条形码。 具体功能: 100% C#托管代码适用于.NET框架2.0,3.0和3.5支持的条码包括:DataMatrix, PDF-417, …

轻量级设计,让网站灵敏轻便的6个技巧

在网站或软件的策划和设计过程中,我们经常听到这样的讨论:“这个功能设计得太重了”又或“我们希望能够处理得轻一些”。似乎轻设计是时下炙手可热的话题,也是方兴未艾的Web2.0大浪下设计师们的最爱(看看那些在全世界遍地开花的SN…

做网站用UTF-8还是GB2312?

经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312。 ● 为什么有这么多编码? ● UTF-8和GB2312有什么区别&…

如何查询几年的网站历史排名变化

在做网站之前, 我们要有一个明确的市场群体的定位,了解用户群体和竞争者。首先要查询竞争者网站排名的变化情况, 最好是几年的排名变化情况, 时间越长越能看出该类型的网站在市场的占有率和需求的稳定性。 那么如何知道 同类竞争者…

查询 alexa.com 历史排名网站

alexa.com 目前提供全球的网站排名, 流量情况. 可以查看情况. 为了更加直观的展现排名变化曲线, 可以使用 http://ddline.cn/cn/url/bilibili.com https://www.alexa.com/siteinfo/bilibili.com 查看, 可以作为了解网站受欢迎程度的参考.

新建 SharePoint 网站集

进入管理中心,主菜单选择“服务设置”选项卡,此菜单选择SharePoint Online 点击网站集的“新建”按钮,看到新建ShartPoint Online网站集对话框 填写一些信息 然后点击“创建” 创建完成将得到以后界面提示 然后将在网站集列表中看到网站集列…