gh.duowan.com,使用PostgreSQL。
27G的数据量,200W的日访问量
下面是该网站维护者Chanix给我的回复,仅作参考:
---------------------------------
我的机房是电信线路,网通访问比较慢。这几天流量突涨,效率上正在进行优化。从最前端的 squid 到最后的 数据库服务器都在不断调整和优化中。
我负责的站也有社会性软件的思想设计的社区。可以看看
http://home.duowan.com。
PG不是完美的数据库,肯定是有缺点的。我认为主要的缺点就是进程模式,一个进程处理一个连接,这样的处理方式较消耗资源。不过从另外一方面来讲,就是因为使用了“落后的”进程模式所以才能达到这么稳定的效果。世上的东西总是双刃剑。。。
MYSQL的确是快,呵呵,特别是ISAM。目前使用MYSQL做SNS类型网站的成功案例也不少。例如 mixi.jp
myspace.com LiveJournal.com 等等,都是上T容量,上百台数据库服务器。。。而且MYSQL支持的表的类型比较多,ISAM
INNODB HEAP。。。可以按照数据的使用状态来进行灵活的使用。
说说为什么我选择PG吧。
我选择PG是因为从6系列开始我就一直在用,比较熟悉。而且我实在是不认为没有ACID的东西可以叫数据库。。。当时MYSQL还在3系列,连最基本的事
务功能也没有,更加别说什么触发器,函数了。插入记录竟然还是表锁,并发插入一多,整个系统马上和纸搭的房子一样坍塌掉(很不幸,当时我做的那个应用插入
比较多)。。。
MYSQL也有它的优点,这个不是重点,我就不多说了。
我对PG比MYSQL熟悉的多。所以我选择PG。这个是最主要的原因。到目前为止,PG还没有让我失望。我觉得你的选型也可以这样考虑的,从实际中看两者各有优劣。也各有成功案例。很难说SNS只有PG能做,或者只有PG能做。
还是那句话,没有好的数据库,只有合适的数据库。找到最合适你使用的数据库才是最好的选择 微笑 正如我虽然选择PG,但没有排斥MYSQL,在我负责的站点中,还是有很多应用是使用MYSQL的。
顺带说一句:
MYSQL要4系列以后,使用INOODB才支持事务。而INOODB与PG之间的效率差别我测试的结果不是很大。
有空可以去看看源代码。MYSQL支持事务的那段代码比起PG比较起来,PG的清晰多了(虽然,我哪个都写不出来 害羞 )。
PG的确稳定,我有个应用我正准备废掉,所以不想花时间优化了,那台数据库服务器每天UPTIME超100。我现在都懒的管了。反正只要访问的人少了,肯定能恢复过来。换成MYSQL,已经崩溃,数据库受损了。
PG一旦出问题,那就是真的出问题了。MYSQL不是,出问题了,你可以通过 repair 来修,不过修理的结果是对是错,你就自己掌握吧。我是试过一个表,系统很高兴的告诉我修理成功!结果发现唯一键字都出重复,害的我整了一通宵。
PG最大的问题我认为在于一个连接一个进程。一台机器上最大的进程数是有限制的,也就意味着可以同时处理的连接数比MYSQL小的多。
PG需要整理,虽然8系列以后出现了 auovaccum
但是还是很麻烦。这也是目前我比较头痛的问题。因为网站是24*7对外开放的,所以不可能停机去VACCUM
FULL,幸好机器硬盘够大,呵呵。这个问题也是我一直想请教LARSER的。
PG的中文资料太少!用的人少,可以请教的人也不多。不象MYSQL,哪个书店里面都有什么XXX天精通MYSQL之类的书,到处都有人吹嘘自己精通MYSQL(即使他只会SELECT + UPDATE)。