现在我手里的数据有以下几个特征
1 、每个表几亿行数据
2 、数据表均不是宽表,大概八九个字段
3 、基本只有查询,偶尔有 join 的需求,没有数据聚合( sum,count 等)的需求
我现在采用的方案是放到 mysql,但单表查询+where 条件,返回 10 行以内,需要 10 分钟。
目前选定了几种方案
1 、放到 es 里面,虽然速度上来了,但还是需要 10s-60s 不等
2 、放到 clickhouse,目前还没做,但我看官网介绍,ck 好像适合数据分析,不适合单条数据查询。
顺便,这不是公司系统,就是个人办公需要用到的数据,大数据组件啥的暂时上不了。各位老哥有什么好方案吗?
1
GM 2021-08-06 19:15:20 +08:00
单表几亿数据虽然挺多,但是如果做好索引,查询的时候利用好索引,不至于 10 分钟。如果查询不复杂,并且有效利用索引,可能还能秒级返回。
|
3
512357301 2021-08-06 22:09:37 +08:00 via Android
行数太多,得分表,保持一个表 200-600 万行,加索引,并且约束好要查询的范围,确定好要查询哪张表(一般对应分表方案有对应的中间件的吧),这样秒级是可以的,基本就是单机单表的标准速度了
|
4
aaniao002 2021-08-07 01:27:31 +08:00 via Android
oracle
|
5
lucifer1108 2021-08-07 17:02:01 +08:00
建议贴一下字段和查询条件,不然很难给出有效意见
|
7
singerll OP @lucifer1108
我是做业务方面的,不是开发人员。比如我有一个表,记录了用户在我们内部系统的编号及对应关系,我就想通过编号查询到这一行的信息。为了避免是我索引使用不当,目前我把表处理的就剩编号( 10 位数字,varchar 格式)+信息( varchar 格式,长度 20 左右)两个字段,结果加了索引还是慢。 于是我就放到 es 里面(还是这两个字段),查询时间从 10 分钟降到了 30S 左右。我知道的是有没有 5s 以内的方案。。。。 |