面试 mysql 如何应对百万并发?

2017-03-09 14:18:20 +08:00
 markfang
5310 次点击
所在节点    数据库
56 条回复
oa414
2017-03-09 17:18:53 +08:00
@markfang 直接把榜单的字段存 Redis ,然后取 TOP N 就行了。

如果一定要用 MySQL ,榜单字段建索引,应用层做合适的缓存,瞬时 100 W 个用户查看的榜单不会有多大变化。
phrack
2017-03-09 17:20:07 +08:00
啥公司这么吊啊,日活上亿?
markfang
2017-03-09 17:21:50 +08:00
@phrack 某大厂
qq496844026
2017-03-09 17:26:01 +08:00
问这个问题真没意义,就算你回答用缓存或者优化 sql 之类的,然后他又会问缓存挂了怎么办,曾几何时我也被这个问题坑过....
redtea
2017-03-09 17:33:17 +08:00
数据从 Mysql 查询后静态化生成 html ,多搭几台 nginx 负载均衡, Redis 之类的缓存都不用使用。
owt5008137
2017-03-09 17:41:02 +08:00
分库分表->缓存->CDN 。就酱
百度得 QPS 才 50W 。什么 NB 业务会 100W 同时请求?
lhbc
2017-03-09 17:43:24 +08:00
动不动就百万千万亿并发……
现在没个几亿并发都不敢说是干互联网的。
swulling
2017-03-09 17:50:25 +08:00
@lhbc 问题是就算是百度首页,每秒的 pv 也就是千万级,顶多上亿

要是页面的平均响应时间只有 100ms 的话,也就百万并发啊
lhbc
2017-03-09 17:57:43 +08:00
@swulling 可惜百度的日 PV 不到 5 亿,哪来每秒 PV 千万级
http://alexa.chinaz.com/www.baidu.com
swulling
2017-03-09 18:37:31 +08:00
@lhbc pv 写错了,应该是流量。每一个 js css 请求都是一次流量,差不多吧,
swulling
2017-03-09 18:38:04 +08:00
@lhbc 另外 pv 早不止五亿了……
paranoiagu
2017-03-09 18:54:17 +08:00
不同意说面试官傻的。其实问题提出来,并不一定有标准答案,或者问题本身有可能有问题,这个时候就应该和面试官进一步讨论,分析。也许面试官考的就是大家都分析问题能力。
paranoiagu
2017-03-09 18:55:55 +08:00
大家要这么想,如果提这个问题的是客户。那我们怎么出解决方案呢?一定也是要进一步讨论明确后才能出方案。
wangdu2012
2017-03-09 19:41:49 +08:00
@markfang 说的是你。明显人家不会问这么没有条件以及上下文的问题
pathbox
2017-03-09 20:16:24 +08:00
也许面试官给了你一个吹水的机会,而你 fuck it 了
lhbc
2017-03-09 20:38:21 +08:00
@swulling 静态是 CDN 的事,都在各个地区的 CDN 节点的内存里呢,而且,浏览器也会缓存这些静态文件相当长的时间。跟搜索引擎一点关系都没。
超过五亿那也没有量级的差距。
sorkl
2017-03-09 21:03:31 +08:00
@paranoiagu 支持,有问题拿出来分析清楚。
觉得应该积极的去面对问题,当然有时候也可能故意抛一个 SB 问题看你的反应,这很正常嘛……
frankzeng
2017-03-09 21:06:35 +08:00
异步处理嘛,先把榜单生成为静态文件,定时更新就可以了。
RobertYang
2017-03-09 21:10:31 +08:00
大胸弟,送分题啊,反正都是吹水 2333
jybox
2017-03-09 21:51:54 +08:00
「瞬间有 100 万用户去看数据」不等于 100 万的并发,如果这些用户集中在 1 分钟内请求,那么 QPS 也只有 1.7 万而已;如果真的是 100 万的并发,按照一个请求 20 毫秒的处理时间,就是 500 万的 QPS 。

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

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

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

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

© 2021 V2EX