MySQL 处理亿级别的数据怎么做?

70 天前
 echoless

面试的时候被问到这个.

面试官的问题是要设计一个交易所, 支持亿级别的 CRUD.

我被问住了, 我的有限经验 Postgres 接近过了亿级别, 就很有点慢了.

当时一直找不到好的解决办法.

我就说要 sharding 一下, 分库分表实际上也是 sharding 的思维.

4969 次点击
所在节点    MySQL
55 条回复
june4
69 天前
@echoless 才几十 GB ?个人 pc 都有几十 GB 内存。至于数据写入,交易所订单量远不能超过 nvme 的写入瓶颈。
wupher
69 天前
面试造火箭,上班拧螺丝

直接买云服务!
cslive
69 天前
先大力出奇迹再说,上 nvme 固态,1tb 内存
opengps
69 天前
回归简单用法,单表过亿并不见得有问题,我还真用过,也有过相关的优化。没想到好几年了这篇文章还能拿来吹一下: https://www.opengps.cn/Blog/View.aspx?id=284
opengps
69 天前
但现在这个时间点,已经有很多更好的方案了,没必要继续去吃透这套思想而继续使用 mysql 干这个业务
wqhui
69 天前
亿级使用有区分度索引的情况下没什么问题,除非做复杂查询,对于大数据的复杂查询就不走 mysql 了,数据同步到合适的地方玩
sagaxu
69 天前
几十 G 的索引拆成 100 个几百 M 的索引,索引文件的大小并没有下降啊,读写 100 个不同的文件还是读 1 个文件不同的区域,对磁盘来说并无区别。单磁盘分表,相当于把索引的第一页,改成人工计算了。
Felldeadbird
69 天前
八股文方式回答。硬件先改成 SSD 。设置好索引,把表复杂度降低,空间换时间。来来去去也就这么多。

另外,楼主可以透露一下面试公司是行业什么水平吗。上来就要做交易所。他们是缺人吗?
jonsmith
69 天前
有索引,内存够大就没问题。
Mrun
69 天前
@echoless #14

并不会,我手上就有几十亿的表,QPS 4000+没啥大压力,更高的没测过
8355
69 天前
能问出这种问题的人一定没有实践过。。。问题本身过于开放,聊 2 个小时可以不重样。
他根本预设不出来一个具体的性能问题,只是感觉会有问题实际并不会有。
以现在硬件来说并不难达到,成本也不高,上云就更简单了。
解决方案根据不同的业务场景有很多,单纯 crud 不写垃圾 sql 没什么跑不动。
ElmerZhang
69 天前
先回问,这个上亿的表存的到底是什么东西,CRUD 分别都是什么样的场景,再根据情况具体设计优化方案。
Caratpine
69 天前
不说业务场景,单说 MySQL 处理亿级别的数据,你该更新更新你的知识库了,现在的硬件处理亿级别数据真是绰绰有余
winglight2016
69 天前
@BBCCBB #19 我们也用了 aurora ,实测下来性能比阿里的 polardb 要差一点,目前只有几千万数据,很担心上亿之后性能更慢。你们的数据库上到几核了?
ala2008
69 天前
数据量这么大的表,备份和同步是不是可以考考
echoless
69 天前
@Felldeadbird #28 面的是虚拟币交易所 想弄个 team 做 LLM, 提出这个问题的是最后一个交叉面的面试官(个人感觉还是有水平的,应该是做交易所业务的一个 leader, 问的问题有些比较刁钻, 但也不让人不舒服) 薪水 35kx14 还算可以, 这家做交易所确实还比较知名.
echoless
69 天前
@8355 #31 以我的感觉这个面试官真的做过.他们就是做交易所的, 而且看起来是面试我的人中水平最高的.

我接触过股票交易, 感觉要做出那种支持高频的交易所软件 并不容易(大部分都是定制的系统).

潜意识觉得搞不定, 就懵掉了. 我觉得 GeekGao 那张图比较好. 面试官可能也就是考系统思维能力. 只要每一层说上一两句 应该就合格了.
salmon5
69 天前
数据库八股文,属于最简单的,因为它比较标准化的东西,有 3-5 年经验就完全掌握。
salmon5
69 天前
一般的公司里。
echoless
69 天前
@salmon5 惭愧 没有做过的东西 我一般答不好

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

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

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

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

© 2021 V2EX