1
hooopo 2020-09-27 13:13:22 +08:00 via Android
用 postgres 有布隆索引
|
2
shaoyijiong 2020-09-27 13:20:36 +08:00
要不上 es
|
3
RickyC OP |
4
aimaodeyuer 2020-09-27 13:33:30 +08:00
@RickyC es 完美适配
|
5
nomansky 2020-09-27 13:37:13 +08:00
binlog 订阅同步到 es,在 es 里面做查询
|
6
fareware 2020-09-27 14:08:23 +08:00 1
如果是 MySQL , 很多时候,建了很多索引恰恰是选错的索引的原因。
可选出几个慢查询,explain 是否真正使用了你想让 MySQL 使用的最佳索引。 如果的确使用了期望索引,还很慢,可能是索引区分度过低,业务是否可调整?保证大部分查询可以用到良好的索引。 如果业务无法调整,对于 1k 余种查询组合,宽表还是多表 join ?宽表是否可拆分,多表 join 是否可优化。 如果使用缓存,读多写少,还是读少写多?前者如何保证缓存高可用?后者不适合使用缓存。是否有冷热数据? 如果使用 ES,如何保证一致性,如何处理深度分页.... 我一直觉得,做技术和做事,都要循序渐进,新技术名词不是撑门面的,合适地方用合适东西,保证可演进。 单一句“用 Es”, 那不如直接一步到位,搜搜最牛掰的搜索架构得了。 |
7
encro 2020-09-27 15:18:34 +08:00
同意楼上,先 explain 语句看看吧。
Why slow ?毕竟 mysql 的专家们并不比 es 专家傻。。。 瓶颈究竟在磁盘还是内存还是 CPU ? 连单机 SQL 都用不好去用分布式的 ES? |
8
encro 2020-09-27 15:19:50 +08:00
我在阿里云 rds 一个 1h1g 的数据库,已经妥妥跑了近亿数据,平均时间不超过 0.2s 。
|
9
wangyzj 2020-09-27 15:59:38 +08:00
理论上千万数据,优化好查询,不应该出问题才对
结构化查询我觉得上 es 有点过了 |
10
daxin945 2020-09-27 16:13:48 +08:00
如果业务中聚合使用的比较多的话 可以尝试下 ClickHouse
|
11
ylsc633 2020-09-27 16:54:09 +08:00
千万数据 只要命中索引 肯定没有任何性能问题
建议 explain 看一下 然后优化一下 sql 语句 我好几个亿的表查询都没有这么慢 |
12
RickyC OP |
13
Rekkles 2020-09-27 17:25:51 +08:00
刚刚测试 mysql5.7 单表 11G 1400w+条 查询 5w 条 id 耗时 43ms
|