如果用 CodeIgniter 框架开发一个 V2EX 这样访问量大小的网站,数据库用什么好呢? 本来 PHP 配 MySQL 挺好的,但是好像 V2EX 上的讨论大家觉得 MySQL 是个坑。

2014-02-18 11:55:18 +08:00
 meteor2013
5916 次点击
所在节点    PHP
35 条回复
ichou
2014-02-18 18:23:37 +08:00
坑吗?
johnlui
2014-02-18 19:20:40 +08:00
其实,我个人觉得,v2ex这么大规模的网站就用redis是不必要的。加一层文件缓存足矣。
MySQL是不是坑?类比PHP来说:天天有人骂php,但是世界上语言有两种,天天被人骂的,和根本没人用的。
我始终对数据库系统怀有敬畏之心,数据库系统是一套单独系统,不依赖任何语言,自己存储、管理数据,还能以如此高的速度取出数据,MySQL还免费给用,业界良心呐。。。
wwqgtxx
2014-02-18 19:51:01 +08:00
v2说mysql不好是因为要尽量减小工作量和服务器资源开销带来的服务器成本
对于正常网站来说,mysql绰绰有余
pubby
2014-02-18 20:35:10 +08:00
看具体应用啊,关系型数据你不用mysql不是自己找坑吗
lyragosa
2014-02-19 01:55:11 +08:00
mysql都是坑了,sqlserver哭晕在厕所里。
meteor2013
2014-02-19 04:35:54 +08:00
workaholic
2014-02-19 07:43:17 +08:00
v2用的就是.mysql+redis
spoonwep
2014-02-19 21:12:09 +08:00
发现LZ被围攻了,其实工具用得好的话都差不多,比如众所周知的FB
crossmaya
2014-02-24 20:56:06 +08:00
mongodb是坑吧,你这外语能力有待提高啊,兄弟。。
meteor2013
2014-02-25 03:42:57 +08:00
jevonszmx
2014-03-26 16:10:20 +08:00
@raincious
你需要varnish~~
raincious
2014-03-26 16:16:38 +08:00
@jevonszmx

动态页面,不能用 varnish。我的页面有一部分是动态的(比如用户名之类),另一部分是静态的(文章内容)。
jevonszmx
2014-03-26 17:25:48 +08:00
@raincious
这个无所谓,需要用户信息的地方用异步,整个页面用varnish缓存即可,如果实时性高,适当减少varnish缓存时间,即使1分钟,也能减少非常多的请求压力。
我们网站就是,全站topbar上有用户信息,页面有用户信息,都是默认显示正常的信息,异步接口判断已登录则替换掉对应的内容即可。
raincious
2014-03-26 20:26:35 +08:00
@jevonszmx

哦,你的情况是静态页面了,然后再用Javascript调程序去获得用户会话信息对吧?这样确实是一种非常有效的手段来减少压力请求。而且可以将静态内容分散到不同的服务器上,这样只需要消耗显示静态内容的资源就能显示整个页面有价值的内容,不需要去搜寻某个位于中心的库。

不过嗯,我的情况不太一样。一方面是因为懒+我没有那么大的请求压力,第二是实时性内容和静态内容会经常混在一起,不想把目前的架构搞复杂了。

所以其实还是各种问题和解决方案放在哪里,选择最合适的吧。
jevonszmx
2014-06-13 17:08:46 +08:00
@raincious
这种是非常有效的方法,可以减少非常多的查询压力,你可以观察taobao、jd之类的网站。

而varnish之类的前端缓存,比常规的静态页面灵活很多,可以写很复杂的判断逻辑,比如指定缓存某个url格式的页面内容,expire也非常好控制。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/100707

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX