如题,MySQL 总共 50 万行数据,30 个字段,全部存到 ES 中查询,平均耗时 1 秒,太慢了,虽然我的是渣渣机械盘,也不至于连 50 万行的数据都支撑不了吧,有没有比 ES 更优秀查询时间优化的更好的免费产品???
1
pathbox 2017-11-29 20:31:03 +08:00 via iPhone 1
我相信不是 es 的锅,是你服务器配置太低,内存太少或是 es 查询姿势错误。
|
2
mringg 2017-11-29 20:31:15 +08:00 via iPhone
你需要怎么查询数据?
|
3
dobelee 2017-11-29 20:33:50 +08:00
普通的全文搜索的话,1 亿数据也不用 1s。
不说具体的需求就是乱投医。 |
4
zn 2017-11-29 20:34:19 +08:00 via iPhone
我跟你讲,区区五十万数据我丢到十美元一年的 VPS 速度都比你这个快。
这锅 ES 不背。 |
5
winglight2016 2017-11-29 20:43:06 +08:00
这个数量级即使放在 mysql 也不会这么久啊?
|
6
pynix 2017-11-29 20:59:30 +08:00
内存应该够了,hdd 的锅吧。。。。
|
7
hljjhb 2017-11-29 21:59:07 +08:00
先问是不是 再问有没有
|
8
asuraa 2017-11-29 22:05:30 +08:00
没有吧 我 3000 多万条查询也不到三分之一秒啊
|
9
iyaozhen 2017-11-29 22:32:11 +08:00 via Android
每天差不多上亿条。除了 SSD 装不下其它没事问题。
|
10
xjqxz2 2017-11-29 22:34:10 +08:00
你是不是把 HEAP 设小了 o.o
|
11
knightdf 2017-11-29 22:38:52 +08:00
这个锅 ES 可不背
|
12
murmur 2017-11-29 22:51:07 +08:00
怀疑你分词有问题
|
13
Morriaty 2017-11-29 23:08:22 +08:00
你 show 一下 query 啊,要是各种 aggs 当然慢啊
|
14
locoz 2017-11-29 23:10:54 +08:00 via Android
锅不要乱甩。。es 查几千万的数据也就 1 秒不到
|
15
mengzhuo 2017-11-29 23:37:42 +08:00 via iPhone
索引要自己定义
减少分析类的 减少 shard |
16
bobuick 2017-11-29 23:46:44 +08:00
50w 数据能慢到 1 秒的话,es 早就在 0.5 版本前被市场喷死在窝里了。
|
17
zhx1991 2017-11-30 00:42:25 +08:00
你用的有问题
而且就 50w 的数据, 扔在 mysql 里查也是 5ms 以内就能返回 |
18
dangyuluo 2017-11-30 00:50:25 +08:00
感觉是你 mapping 不对
|
19
lyhiving 2017-11-30 01:04:32 +08:00 via Android
如果是 50 亿条数据我估计会信
|
20
SharkIng 2017-11-30 01:51:01 +08:00
ES 对于内存和硬盘要求很高的感觉
我们的近百亿的数据在 15 个机子上,每个 32G 内存+ 8T 的 SSD,查询大量的时候基本平均 2 秒左右 按理说你这个数据量应该没问题,试试换 SSD 看能快点不。 |
21
alwayshere 2017-11-30 08:19:56 +08:00
@zhx1991 你确定 50W 用 mysql 的 LIKE 查询能在 5ms ?
|
22
fuxkcsdn 2017-11-30 09:00:01 +08:00 via iPhone
@alwayshere 听过 mysql 的全文索引吗?
能否 5ms 我不确定,但 1s 内返回肯定是可以的,上家公司我们 300 万数据也是放 mysql 里用全文索引 btw,mysql 全文索引和 like 查询是两码事 |
23
kwklover 2017-11-30 09:15:19 +08:00
才 50 万的数据,这个机器配置不算低了,不过 30 个字段是个核心
如果每个字段都是跟文章一样的长字段,那么其实 50 万数据跟一般概念的 1500 万数据量差不多,也不算小了。 楼主的什么系统,要索引 30 个字段? |
24
janxin 2017-11-30 09:44:29 +08:00
才 50w 数据,es 没问题的
|
25
thinkmore 2017-11-30 10:05:37 +08:00
应该是你姿势不对,我们几千万数据也才差不多一秒呢
|
26
jyf 2017-11-30 10:08:02 +08:00
跟你配置有关系 我这里 100 亿的数据 只有五六台机器 也就一秒左右
|
27
vus520 2017-11-30 10:35:00 +08:00
在 1 亿条数据里查找匹配内容,返回前 50 条。
共有数据 :5392450 条,显示最新 50 条,用时 382 ms |
29
well 2017-11-30 10:52:21 +08:00 1
5 台服务器,2600 亿,近 50TB,无 SSD,也就秒级能出。如果玩不转建议不要玩。
|
32
Juice520 2017-11-30 11:33:40 +08:00
我普通的全文搜索,1 亿数据耗时不到 100ms
|
33
owenliang 2017-11-30 12:04:06 +08:00
50 万数据磁盘空间 du 看看占了多少,可能内存不太够。
|
35
farseeraliens 2017-11-30 12:20:49 +08:00 via iPhone
楼主需要的是用一个 language model 先判别语言,再在该语言特定的列中检索。
|
36
Reign OP @farseeraliens 没特别好用的语言检测代码,你推荐个?
|
37
SoulSleep 2017-11-30 12:23:25 +08:00
自己不会用甩锅系列...
50w 数据有几十个 G 嘛? 4C 16G 服务器,0.0xs 跑的飞起 |
38
omygod 2017-11-30 12:47:03 +08:00
16G 内存你给 es 分了多少
|
39
Reign OP @omygod 刚刚 export ES_HEAP_SIZE=10g,重启 ES,查询时间还不是一样,我估计用到假的 ES 了
|
40
allenhu 2017-11-30 16:30:38 +08:00
每次看到楼主的帖子都想笑
|
41
sunmonster 2017-11-30 19:13:07 +08:00
50 万的话,mysql 查询都不用 1s
|
42
jatesun 2017-12-01 07:25:18 +08:00 via iPhone
ES 配置问题吧?我们这每天两千多万数据查询都秒级响应
|
43
gfh110 2017-12-01 11:04:19 +08:00
分词的问题吧
|
44
armstrong 2017-12-01 11:42:03 +08:00
这锅 ES 不背
|