本文介绍了关于“如何使用sequoiasql-postgresql优化关联表的创建”的知识。很多人在实际办案过程中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
[用户咨询]
使用sequoiasql-postgresql创建一个关联表,并存储500W数据。在创建索引的情况下,用pg进行简单的分组查询平均需要50秒。能否进一步优化?
[问题描述]
1.集群部署
三台主机对应一个分区组,每台主机配有coord、cata和数据节点。
2.表格属性
一个500w数据关联表b_qt_swdj和一个800w数据pg原生表b_qt_swdj1。这两个表的结构相同,共有39个字段。
3 .样本和陈述
对关联的表执行查询:
SELECT sw_scjy_yb,count(se_scjy_yb)为count FROM b_qt_swdj组by sw _ scjy _ yb
从b_qt_swdj中选择计数(1);
对本机表执行查询:
SELECT sw_scjy_yb,count(se_scjy_yb)为count FROM b_qt_swdj1组by sw _ scjy _ yb
从b_qt_swdj1中选择计数(1);
使用db内置sql执行需要57秒。执行需要33秒。
用pg执行,耗时50秒。执行需要44秒。
用pg执行,耗时8秒。执行需要3秒。
4.网络带宽
数据传输时间约为46 MB/s。
[解决方案]
选择sw_scjy_yb,通过sw_scjy_yb将计数(se_scjy_yb)作为计数FROM b_qt_swdj1组;pg花费的时间和内置sql的sdb差不多,大约是50S。和pg关系不大。
从pg的访问计划来看(见截图3),大部分时间都花在了select上。
建议1:我们应该考虑在sdb中对表进行分区,以提高数据提取的并发性,从而提高性能。
建议2:推荐使用Sparksql作为大型表统计的sql引擎。
这就是“如何用sequoiasql-postgresql优化关联表的创建”的内容。感谢您的阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155625.html