MySQL数据4亿行的数据查询50ms怎么做到的??

31 个赞


大概意思就是拿钱堆得

1 个赞

有索引就不怕

2 个赞

没玩过这么大的数据,好强

如果是分库分表,假如有320个分表,那么平均一个表就是1250万,要在这个1千多万里面用索引找出一行记录,假如b-tree只需要3次io,那么只需要几ms就行了。

3 个赞

真的可以啊?

建议学一下计算机课的数据库

试了一下,

SQLite,单表 1.3 亿行,100GB,机械硬盘

都能 15ms 主键查询。。

1 个赞

现在千元消费级固态,都支持 100W 随机读写了呀?(4200 * 1024 / 4 = 107.5W)

就算单表 4 层 B+ 树,能容纳 88 亿,

假设枝干 16KB / 20B = 820 扇出,叶子 16KB / 1KB = 16 节点,总计 820 ^ 3 * 16 = 88 亿

缓存前两层(代价几十 MB 内存),每次查询,也只消耗 2 个 IO,

按理说应该能有 50W QPS?

钱不到位,再怎么优化也是徒劳的

2 个赞

确认是mysql吗?还是在开源上进行了改动?

太牛了,俺们管理员不让存这么多数据,太大就建议换一种存储,俺也没实现50ms4亿数据,长见识了,感谢大佬分享

mysql 应该还不至于那么不堪…

不谈场景没法讨论,简单查询能走索引数据量再多几倍也不是不行

快来大佬大佬讲讲,我也学习学习,但是我感觉放在第一位的还是堆硬件

不如建议谷歌百度

大佬真多学习了