各位大佬。想知道 MySQL 五亿的数据如何让查询控制在 10 秒之内呢,目前已经分成 10 张表,一张表 5000 万条数据,对需要查询的字段加了索引,用 UNION 查询所有表大概需要 5 分钟,实在是太慢了。希望可以给点建议。
1
a570295535 2021-01-27 19:45:13 +08:00 5
直接: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
infun 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
wapzjn 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 2
这种啥都没说的问题大佬看都不会看一眼
|
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
imjamespond 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 左右。太感谢了!
|