数据库技术选型求助。。。。

2020-09-08 10:15:40 +08:00
 fuckyoudolphin

技术选型求助一发

业务要求:

MYSQL 里面三张 1000w 级别的表( A:500W B:1000W C:800W )

没有分库分表,有索引但我不能动(因为是其他部门的库)
列的数量:( A:30 B:15:C:20 )
每张表每天新增不超过 1W 条数据
并没有实时查询的需求(每天 12 点更新一次数据即可)
做各种各样的 比较复杂的聚合查询(经常加乱七八糟的需求)

查询 QPS:小于 100

现在通过优化 SQL 最复杂的查询速度小于 5s
但现在渐渐扛不住了 领导还是觉得太慢

所以现在求助一下
第一个问题 继续优化 mysql 还能继续压榨性能吗
第二个问题 由于没有实时查询的要求 其他部门也愿意导出数据给我 找个适合 OLAP 的数据库能解决我现在的问题吗

4055 次点击
所在节点    数据库
32 条回复
death00
2020-09-08 13:17:39 +08:00
统一之前一个人的观点,如果一天动一次,把聚合结果用定时任务专门跑一次,以后直接查聚合结果,应该就会很方便了。
ren2881971
2020-09-08 13:22:37 +08:00
建数据仓库,把事实表按照统计维度建立仓库,然后上联机分析工具 直接查询数据仓库数据。 这样快很多。
momowei
2020-09-08 13:31:25 +08:00
oracle 是最好选择
surfire91
2020-09-08 13:46:52 +08:00
先看看索引能不能解决问题吧,如果能不如弄个从库,从库加索引,就这点数据量搞个数仓成本有点高。
laminux29
2020-09-08 14:48:44 +08:00
既然不允许动原库索引,你就弄个副本库嘛,在副本库上做各种索引,反正不要求实时。
jenlors
2020-09-08 14:51:39 +08:00
楼主你需要的是这个,https://github.com/long2ice/synch
Still4
2020-09-08 15:23:51 +08:00
个人经验 mysql 上千万进行聚合查询效率就很差了,就算索引跟查询很契合,架不住联表

寻找其他数据库是有必要的,是否上分布式就看你们预算了
rrfeng
2020-09-08 15:47:05 +08:00
脱离业务谈需求就是 xxx

没说数据结构,查询条件,没法优化。
tairan2006
2020-09-08 16:11:46 +08:00
直接塞 es…你这又不是实时更新,连 binlog 同步都不用,每天 12 点根据 update_time 增量更新一次完事。
zhengdai1990
2020-09-08 17:52:06 +08:00
es 呗
blueskea
2020-09-08 18:22:28 +08:00
两点想法供参考。1.参考 kylin 做预计算,结果还存储在 MySQL 中,再配合缓存。成本较低但预计算的逻辑设计比较复杂。2.binlog 实时同步工具 canal, sdc 。离线工具 sqoop, datax 。olap 数据库 kylin clickhouse kudu es, 建议选择有成熟 jdbc 接口的。都建大宽表,空间换时间。
jwdstefani
2020-09-10 16:31:14 +08:00
ES 好使

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX