Craigslist采用MongoDB替代MySQL

根据国外媒体报道,全球最大的分类信息网站Craigslist正在使用MongoDB数据库存档数据,之前该网站使用的是MySQL数据库集群。这或许是采用NoSQL数据存储的最大的网站。

以下是有关Craigslist的MongoDB集群,来自该网站的软件工程师Zawodny:

我们正在测算安装大概50亿文档的空间,从最初的20亿文档导入,以及加上未来几年需要的空间。平均一个文档的大小是2KB(一共10TB的数据)。对于MongoDB我们是实践中摸索经验,这个特殊的任务不是高吞吐量或者是不可预测的成长。 在迁移的过程中,将数据导入MongoDB,会比从MySQL中导出要快。

有兴趣的朋友可以观看视频,Zawodny解释在Craigslist的数据存储的演变,以及MongoDB如何满足站点基础构建的未来。当然在该视频,你还可以了解到Craigslist为何在众多数据存储解决方案中选择MongoDB。

MongoDB简介:

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

Craigslist简介:

Craigslist是由创始人Craig Newmark于1995年在美国加利福尼亚州的旧金山湾区地带创立的一个网上大型免费分类广告网站。它也可称为是分类信息网站的鼻祖,国内同类网站包括赶集网站、58同城等。

原文出自:开源中国社区

时间: 2024-08-01 11:10:28

Craigslist采用MongoDB替代MySQL的相关文章

项目中我为什么用Mongodb取代Mysql

  在项目设计的初期,我当时有了这样的想法,同时也是在满足下面几个条件的情况下来选择最终的nosql方案的: 1.需求变化频繁:开发要更加敏捷,开发成本和维护成本要更低,要能够快速地更新进化,新功能要在最短的周期内上线. 2.客户端/api支持,因为这直接影响开发效率 3.部署简单 4.扩展能力强 5.节省系统资源,对cpu等资源耗费较小 满足这些要求的nosql方案,就剩下了mongodb和redis了,对于redis,我并不是说他不好,而是有一个重要原因,我们的项目的数据处理格式都是采用JS

mongodb与mysql命令对比

mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象(document)三个层次组成.MongoDB对于关系型数据库里的表,但是集合中没有列.行和关系概念,这体现了模式自由的特点.  MySQL MongoDB 说明 mysqld mongod 服务器守护进程 mysql mongo 客户端工具 mysqldump mong

python+django能够同时使用mongodb和mysql两种数据库引擎吗?

问题描述 python+django能够同时使用mongodb和mysql两种数据库引擎吗? 各位朋友们好,我原来做一个项目:因为表没有关联,所以用的是非关系型数据库mongodb,项目开发环境用的是python+django,部署在ubuntu上.当时用了pymongo做python和mongodb的连接,用mongoengine做了django与mongodb的连接. 现在来了新的需求,表之间有关联,因此我准备添加一个mysql数据库. 请教各位朋友们,django展示网页的时候,能够同时展

MongoDB与MySQL的操作对比表及区别介绍_MongoDB

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方.所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言.   以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简

MongoDB与MySQL常用操作语句对照_MongoDB

一.MongoDB对MySQL常用的SQL语句对应的实现 复制代码 代码如下: -------------- MySQL: SELECT * FROM user Mongo: db.user.find() -------------- MySQl: SELECT * FROM user WHERE name = 'foobar' Mongo: db.user.find({ 'name' : 'foobar' }) -------------- MySql: INSERT INTO user ('

Buildroot MariaDB替代MySQL

/********************************************************************************* * Buildroot MariaDB替代MySQL * 说明: * 在处理MySQL的时候发现,原来的MySQL不见出现了MariaDB和Oracle MySQL两个选项, * 默认选择了Oracle MySQL,不过编译出来有问题,还是换成MarialDB来处理. * * 2017-10-14 深圳 南山平山村 曾剑锋 ****

MongoDB实现mysql主键autoincrement

MongoDB新建表默认有一个_id字段来作为autoincrement自增实现,而这个_id字段类型是objectid类型(objectid 是12字节的BSON类型).ObjectId的详细解释. 而现在因为数据库迁移,将项目中原mysql的一些locations表移植到mongodb上面.对于locations 使用mongodb 2d loc 索引能够更快的进行数据检索,同时避免原mysql需要经过复杂的经纬度查询. 那么数据迁移后主要的要求有 1.数据库表的迁移不会影响表与表之间的关系

采用OpenReplicator解析MySQL binlog

Open Replicator是一个用Java编写的MySQL binlog分析程序.Open Replicator 首先连接到MySQL(就像一个普通的MySQL Slave一样),然后接收和分析binlog,最终将分析得出的binlog events以回调的方式通知应用.Open Replicator可以被应用到MySQL数据变化的实时推送,多Master到单Slave的数据同步等多种应用场景.Open Replicator目前只支持MySQL5.0及以上版本. Open Replicato

Mongodb与Mysql的查询脚本操作命令对比

1.查询所有记录 db.userInfo.find(); 相当于:select * from userInfo; 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据.注意:键入it命令不能带":" 但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize = 50;这样每页就显示50条记录了.   2.查询去掉后的当前聚集集合中的某列的重复数据 db.userInfo.distinct("name"); 会过滤掉na