本文介绍如何调整uxmpp集群以获得最佳性能。我们将在一台UXDB服务器上调优数据库以提高性能,在所有的集群上进行扩展。
首先,先了解下选择正确的分发列对性能的影响。
分发列选择
创建分布式表的第一步是选择正确的分发列,这有助于uxmpp将多个操作直接下推到worker分片,并排除不相关的分片,从而显着提高查询速度。
通常,对于分发列的选择,可以选择常用的连接键,或者大多数查询都用到的过滤键。对于过滤键,uxmpp使用分发列范围排除不相关分片,确保查询只匹配与WHERE子句重叠的分片。对于连接键,如果连接键和分发列相同,则uxmpp只在具有匹配/重叠分布列范围的碎片之间执行连接。所有这些碎片连接都可以在worker上并行执行,因此效率更高。
此外,uxmpp还可以根据分发列将多个操作直接下发到各个worker上,这大大减少了每个节点上的计算量和跨节点传输数据产生的网络负荷。
UXDB调优
uxmpp协调器将传入的查询分为片段查询,并将它们下发到worker上进行并行处理。worker其实只是扩展的UXDB服务器,这些查询将应用UXDB的标准规划和执行逻辑。因此,我们需要先调优worker上的UXDB配置参数以提高性能。
调整参数是一个实验的过程,通常需要多次尝试才能达到理想的性能。因此,在调整参数的时候,可以选择加载一小部分数据,加快迭代速度。
开始调优前,先创建一个uxmpp集群并加载一些数据,在master上执行EXPLAIN命令,查看worke