如题,MySQL 总共 50 万行数据,30 个字段,全部存到 ES 中查询,平均耗时 1 秒,太慢了,虽然我的是渣渣机械盘,也不至于连 50 万行的数据都支撑不了吧,有没有比 ES 更优秀查询时间优化的更好的免费产品???
![]() | 1 pathbox 2017-11-29 20:31:03 +08:00 via iPhone ![]() 我相信不是 es 的锅,是你服务器配置太低,内存太少或是 es 查询姿势错误。 |
![]() | 2 ming2050 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 ![]() 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 不背 |