专访视觉中国技术总监潘凡:适合的就是最好的

原创
数据库 其他数据库 数据库运维
51CTO的记者在2011年的QCon大会北京会场上有幸请到了视觉中国的技术总监潘凡先生,为我们谈一谈视觉中国的数据库选择之路,潘凡先生说:“适合的就是最好的。”

【51CTO独家专访】随着非关系型数据库的发展,很多企业由于自身的考虑,一直在关系型与非关系型的选择之间徘徊。51CTO的记者在2011年的QCon大会北京会场上有幸请到了视觉中国的技术总监潘凡先生,为我们谈一谈视觉中国的数据库选择之路,潘凡先生说:“适合的就是***的。”以下是根据访谈内容整理而成的文字记录,以方便大家阅读。

关于被访者

潘凡

未受过正式高等教育,一名普通的财务会计,出于对编程的热爱和冲动,97年起转行投入软件开发行业,从事过若干年的.Net和Java开发,也曾是一名Perl/PHP程序员和Linux狂热推动者。

2000年前曾先后供职于赛迪网和赛迪数据,从事电子商务相关研究工作。2001年起创业,致力于将互联网应用架构引入传统零售行业,构建了基于web服务的零售商业应用,实现了PDA移动终端/POS/PC基于互联网整合成功案例,先后在部分500强企业成功实施运行至今。在创业期间又和朋友一起创建了视觉中国网站。

目前供职于视觉中国网站,担任技术总监和架构师,关注领域包括可伸缩的网站架构,NoSQL应用实践以及后现代的Perl编程。

[[21452]] 

左为潘凡先生,右为51CTO记者

对数据库的选择——09年是一个转折点

潘凡:在视觉中国成立之初,我们选用的数据库是MySQL,09年之后我们才选用了MongoDB作为我们的支撑数据库。

51CTO:您在放弃MySQL的时候,没有考虑过使用Oracle或者SQL Server?

潘凡:视觉中国是根据业务的需要来进行的选择,初始时,我们并不是想去放弃MySQL,实际上当时我们选择MongoDB的一个初衷是希望选择一个NoSQL的产品做一个辅助的方案。但是在实际的项目实施中,我们发现MongoDB这种NoSQL数据库的很多功能可以代替MySQL,因此我们决定使用MongoDB。

我们选择替换,不是说MySQL这种数据库产品不好,而使用Oracle或者SQL Server,实际上我们不是选择一个普通的数据产品来代替另一个数据库产品。我们本身的出发点是寻找一个可以支持MySQL的辅助产品。只是碰巧让我们找到了可以替代MySQL原有工作的一种数据库。

51CTO:也就是说这种“放弃”不是必然,只是一种巧合。

潘凡:是的,我们最开始就是想把MongoDB作为MySQL的一个辅助,现在有一种方案叫做SQL+NoSQL,这也是我们的选择。只是后来我们发现这种方法可以简化,就只用了MongoDB

51CTO:视觉中国的这种选择,也相当于在学习中前行,有没有遇到很多困难?

潘凡:困难是肯定有的,而且还有很多。困难的来源一方面来源于MongoDB的年轻。虽说它的发展很快,但是毕竟是年轻的产品,技术不是特别的成熟,所以会出现很多很多的问题。但是他们有一个好的技术团队,对产品的版本更新速度很快,对问题的响应速度很快,这对我们解决问题是很大的支撑。一方面是我们的技术,遇到困难,解决困难,在这个过程中,我们得到了很多经验,为后续的工作做了很好的准备;总结了很多教训,引以为戒吧。

MongoDB的稳定性——单机vs auto-sharding

51CTO:视觉中国的数据量能达到多少呢?

潘凡:视觉中国的数据量并不太大,我们将数据进行分组,大概分为四组,每组的平均数据量大概是几百万到七、八千万。

51CTO:在这种数量级,MongoDB的稳定性如何呢?

潘凡:基本上没有出现大的问题。正常情况下,不会出现莫名其妙的宕机。

只有在极其异常的情况下,比如:机房整体断电、全部机柜的电源突然全部跳了,在这种情况下,曾经出现过数据的丢失。

但是现在1.8以后的版本,这种情况基本就没有了。

51CTO:MongoDB在处理大规模的数据是的稳定性又是如何的呢?

潘凡:视觉中国的数据量是有限的,只能到***别;但是,根据国外的案例来看,数据量已经达到十亿、百亿的级别,MongoDB的使用基本没有出现过太大的问题。如果现在我们不通过auto-sharding,自己手动删片,也是很不错的。
 

51CTO:现在版本的MongoDB本身是否有什么不足或者不稳定因素?

潘凡:MongoDB的单机版,也就是非sharding版本目前来说还是很稳定的。

但是,sharding版本的问题主要集中在mongos即它的路由处理(路由器),很多朋友也和我讨论过类似的问题。对于这个问题,我们现在处于观望的态度,因为对原有数据的迁移毕竟是一个很漫长的过程,不过我们会在新的项目中尝试使用这种auto-sharding的技术。

MongoDB的优化——索引的优化

51CTO:在对数据维护时,有什么值得注意的吗?

潘凡:硬件上,我们要把空间留的足够了,内存也要稍微多给一些。对于MongoDB的优化主要是围绕索引,对于索引的优化。索引的使用如果要讲究一点技巧的话,剩余的运维动作还是很简单的。

值得一提的是,与MySQL相比,这是MongoDB的优点,也是缺点,就是可选择的优化途径是有限的,但是能把有限的几种做好,基本也够用了。

下一页有相关专访视频

#p#

笔者在茶歇时间,与参会的一下用户进行了简单的沟通,以后是沟通内容:

  1. 51CTO:您公司使用的是什么数据库呢?
  2. 途牛网:我们使用的是MySQL的数据库。
  3. 51CTO:您公司想过使用非关系型数据库吗?
  4. 途牛网:我们对这种技术正在研究,但是考虑成本,短期内不会使用吧。
  1. 51CTO:您关注什么数据库呢?
  2. 大学生:我们学校教的是SQL Server,所以我们在外面做兼职基本也是选用SQL Server。
  3. 51CTO:您听说过非关系型数据库吗?
  4. 大学生:这方面我们不太关注。

编者语:

无论选用哪种数据库,都要根据公司的情况来判断,毕竟这种转移是十分耗费成本的。SQL+NoSQL的方法,十分值得关注。另外优化是十分重要的,但是优化是有技巧的,万不可胡乱优化

【编辑推荐】

  1. 走进MongoDB的世界 展开MongoDB的学习之旅
  2. 微软研究人员:NoSQL需要标准化
  3. 视觉中国的NoSQL之路:从MySQL到MongoDB
  4. MongoDB1.8发布,分布式文档数据库

 

责任编辑:艾婧 来源: 51CTO
相关推荐

2015-08-06 15:29:15

上网浏览器

2011-05-05 17:29:23

扫描仪

2012-05-08 14:55:34

APP推广

2012-07-09 20:18:01

2012-11-21 13:39:34

OpenShift

2012-12-10 18:53:03

开源JBoss

2011-09-28 17:21:47

抄袭

2015-08-31 17:45:38

2010-06-05 22:52:33

UML

2013-09-16 09:12:58

数据分类数据安全

2020-09-07 19:40:44

网络运维

2011-04-25 13:19:07

2015-04-15 10:18:22

.NET开源

2009-02-27 10:29:11

虚拟化技术网络大会虚拟化应用航天联志

2013-05-10 14:17:00

Ubuntu开源操作系统

2013-09-22 17:08:50

飞鱼星无线云飞鱼星路由器飞鱼星

2010-06-23 09:41:35

惠普阿凡达刀片

2014-11-25 10:41:54

IT技术周刊

2011-09-23 10:14:05

开放操作系统Android

2014-11-17 23:23:56

点赞
收藏

51CTO技术栈公众号