
各位大佬。想知道 MySQL 五亿的数据如何让查询控制在 10 秒之内呢,目前已经分成 10 张表,一张表 5000 万条数据,对需要查询的字段加了索引,用 UNION 查询所有表大概需要 5 分钟,实在是太慢了。希望可以给点建议。
1 a570295535 2021-01-27 19:45:13 +08:00 直接:rm -fr /* |
2 adness1234 2021-01-27 19:56:08 +08:00 搞个 1T 内存的服务器,做个 ramdisk,然后再把CPU超频,整机丢到机油池子里 |
3 fiveelementgid 2021-01-27 19:57:35 +08:00 via Android 楼上都不靠谱,吃瓜等楼下老哥 |
4 GlobalNPC 2021-01-27 19:59:46 +08:00 via Android 上 clickhouse |
5 redtea 2021-01-27 20:03:28 +08:00 上 Elasticsearch 或 Hive |
6 LeeReamond 2021-01-27 20:06:28 +08:00 不应该啊,已经加了索引,怎么还会 5000 万数据就 5 分钟 |
7 Qute 2021-01-27 20:07:47 +08:00 1 、clickhouse 你值得拥有,一条命令就能把 mysql 的数据导入到 clickhouse,而且查询速度飞起 2 、优化部分分表的逻辑,使用类似于日期,月份之类一直增长表数量的分表策略,但是不一定使用于该场景,而且迁移数据麻烦 3 、ElasticSearch 也可以,但是要注意一下表设计,尽量让数据表平化一点,要不后期修改麻烦,导数据的话用提供的中间件就可以,例如 LogStash,或者自己手写 |
8 em70 2021-01-27 20:09:17 +08:00 5 分钟肯定是没用上索引,需要具体分析 建议用阿里云开放搜索,多花点钱,能省很多事 |
9 ericbize 2021-01-27 20:09:43 +08:00 服务器配置不说一下么,buffpool 大小, 表大小 不说一下么 |
10 opengps 2021-01-27 20:19:40 +08:00 via Android 按照查询足够单一的思路去设计表,表分区或者精确分表查单个表 |
11 xyjincan 2021-01-27 20:31:33 +08:00 via Android nvme ssd |
12 laminux29 2021-01-27 20:34:28 +08:00 什么数据,结构怎样,有没有关系。 查询是什么样的,需要具体分析。 计算机配置,设备性能,网络能力,等等。 你就说了 5 亿数据,大佬不是神,也没办法瞎猜。你要求 10 秒,就算是 5 亿数据的文本直接复制粘贴,10 秒够不够还是个问题。 |
13 update 2021-01-27 21:12:58 +08:00 哪怕发个表结构,发个查询 sql 。。 |
14 yumenawei 2021-01-27 21:25:58 +08:00 先 explain 下看看情况吧 |
15 love 2021-01-27 21:30:26 +08:00 这种啥都没说的问题大佬看都不会看一眼 |
16 Still4 2021-01-27 21:34:07 +08:00 我觉得速度挺正常的,如果是单节点的话,受限于内存会用到文件缓存,速度肯定就慢了 根据业务建立定时任务处理到中间表吧,你这数据大概率不要求实时 |
17 felixcode 2021-01-27 21:41:58 +08:00 《高性能 MySQL 》 |
18 sighforever 2021-01-27 22:03:05 +08:00 说一下具体需求啊, 一下子查出 5 亿数据,我感觉除了无脑提高单机性能,应该没啥太好的办法 |
19 fox0001 2021-01-27 22:05:30 +08:00 这说得有点空,具体要看表结构和那个 UNION 查询 SQL 吧?另外,机器是什么配置? |
20 iwukong 2021-01-27 22:09:21 +08:00 这就需要牛逼算法了 |
21 Lemeng 2021-01-27 22:18:54 +08:00 觉得算法牛逼了,前提也要设备配置。都靠算法了,厂商就不干了 |
22 zeromake 2021-01-28 00:24:16 +08:00 via Android 等一个 tidb 的同学过来 |
23 wellsc 2021-01-28 00:44:16 +08:00 via iPhone 才五亿? |
24 iyaozhen 2021-01-28 00:59:58 +08:00 一张表 5000 不算多,索引搞对了还行。机器配置怎么样?得 SSD |
25 JQD6r41PkI4o2mEz 2021-01-28 01:03:22 +08:00 via Android 索引也得看看是不是自平衡索引,自平衡肯定快,但是插入就吐血了 |
26 kiddingU 2021-01-28 09:52:16 +08:00 5 亿数据还优化个啥,上其他数据库呗,ch es tidb 都能满足你的需求,如果有更新要求,ch 可能不适合了,es tidb 更适用 |
27 Varobjs 2021-01-28 11:02:20 +08:00 上面有人说肯定没加索引,敢情索引就是我万能的了 /hh |
28 freelancher 2021-01-28 13:43:33 +08:00 请个 DBA 优化。 |
29 freelancher 2021-01-28 13:44:01 +08:00 例如我。。。最近都没温数据库相关的东西。要忘光了。玩了二年多了。 |
30 jenlors 2021-01-28 22:03:05 +08:00 上 ClickHouse |
31 VincentYoung OP 感谢各位大佬,我尝试用 Clickhouse 单表加索引,查询速度在 0.025s 左右。太感谢了! |