This topic created in 937 days ago, the information mentioned may be changed or developed.
先介绍一下 技术栈
python + mysql
由于数据量大,而且跨很多表查询比较慢,统计维度多。就想着重构一下 看看有什么好的技术栈给推荐一下吗。
订单表、患者表、检查数据表、挂号信息表
筛选条件 例:0-18 岁、患者来源 xxx 、距上次检查超过半年且近视度数大于多少且没有买 xxx 商品、等一些复杂多维度的查询,一联跨很多张表,而且直接从 mysql 取出数据还需要再加工拼接,所以说比较慢,不能所见即所得那种。
有没有这方面的大佬,就像我这种需求的话哪些技术栈比较合适,给点建议怎么才能更好的实现。
10 replies • 2023-10-18 13:32:22 +08:00
 |
|
1
zhenjiachen Oct 18, 2023
同求架构,我们现在是把数据多的同步到 clickhouse ,然后查询相对 mysql 快很多,但是领导需求千奇百怪,每次改代码都好麻烦。
|
 |
|
2
Fooooo0 Oct 18, 2023
Google 一下 "OLAP 实时统计 数据库",目前比较热门的是 clickhouse 和 Doris 。 当然你说的要解决一些复杂多维度的查询可能需要引入 ETL 预处理或者一些 BI 工具,单纯数据库解决不了这个问题。
|
 |
|
3
luoyou1014 Oct 18, 2023
简单点的话,直接用 mysql 中的 json 字段,这样就不用多表联查了,缺点是 json 的联合索引仅支持一个 json 字段,可以考虑采用虚拟字段来支持多个 json 索引
|
 |
|
4
realpg Oct 18, 2023 1
数据量多大?有一亿行么? 我这 mysql 8700 万行不分表 没觉得数据量大性能差
|
 |
|
6
realpg Oct 18, 2023
没打完就发出去了 你这种需求,不需要换技术栈 而是需要统计常见维度,做非实时调度查询系统,放在冷库里有调度的专门跑这些查询 冷库里去掉各种字符串字段,各种字段能数值化就数值化
比如你说的: 0-18 岁、患者来源 xxx 、距上次检查超过半年且近视度数大于多少且没有买 xxx 商品
业务部门显然是要筛用户进行推广或者营销,这种都是低响应要求的。 不会因为 0.5 秒没出结果客户就跑了,行政开销远高于系统开销
多进行总结,预提报告数据,同时后台不断学习,创建预设维度自动跑,同时调度响应各种筛选维度
|
 |
|
8
bjzhush Oct 18, 2023
如果说做数据统计和聚合,我之前的项目用的是 apache kylin ,还不错 这玩意没法查出具体某一条数据,但是拿来做数据统计非常合适,有兴趣可以了解一下
|
 |
|
9
SD10 Oct 18, 2023 via iPhone
先搞清楚是做 OLAP 还是 OLTP ,解决方案不一样的。
|
 |
|
10
MaxFang Oct 18, 2023
报表业务不要直接使用业务表,使用业务表就导致 join 漫天飞。 需要合理的规划表维度,从业务表抽取数据到报表,ETL 这类的。
|