查理性能不佳我是Galera Cluster

时间:2016-08-22 21:52:22

标签: mysql galera

我最近将生产系统从单个MySQL实例移动到具有三个节点的Galera Cluster。一切似乎都运行正常,但对于SELECT查询;自从移动大幅下降以来,查询性能一直处于难以忍受的一面。

有人为Galera提供任何性能调整技巧吗?我是Galera的全新人,我所做的设置可能是最简单的。

这是my.cnf文件的Galera部分:

# Galera
wsrep_provider        =/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address    ="gcomm:// 213.179.3.90, 213.179.3.91, 213.179.3.92"
wsrep_sst_method    =rsync
wsrep_cluster_name    =galera_cluster
binlog_format        =ROW
default_storage_engine    =InnoDB
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1

这是一个永远需要的查询:

SELECT
    r.customerid,
    r.operator,
    r.account,
    CAST(r.requesttype AS char),
    CAST(SUM(r.nofsms) AS char),
    COALESCE(r.subid1, ''),
    COALESCE(r.subid2, ''),
    COALESCE(r.subid3, '')
FROM
    `smspro`.`smspro_cc_result` r
INNER JOIN smspro.smspro_customer sc ON sc.customerid = r.customerid
    AND sc.smsproinvoice = 0
WHERE
    r.status = 0
        AND r.timestamp >= '2016-05-25'
        AND r.timestamp < '2016-06-25'
        AND r.requesttype IN (1 , 2, 4, 5)
GROUP BY r.customerid , r.operator , r.account , r.requesttype , r.subid1 , r.subid2 , r.subid3
ORDER BY r.customerid , r.operator , r.account , r.requesttype , r.subid1 , r.subid2 , r.subid3

和一些统计数据

mysql> select count(*) from smspro_cc_result;
+----------+
| count(*) |
+----------+
|  9170870 |
+----------+

mysql> show index from smspro_cc_result;
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table            | Non_unique | Key_name      | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| smspro_cc_result |          0 | PRIMARY       |            1 | smsproid    | A         |     8825169 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_1 |            1 | customerid  | A         |       14757 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_2 |            1 | timestamp   | A         |     4412584 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_3 |            1 | customerid  | A         |       18233 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_3 |            2 | msisdn      | A         |     8825169 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_3 |            3 | timestamp   | A         |     8825169 |     NULL | NULL   |      | BTREE      |         |               |
| smspro_cc_result |          1 | idx_sms_req_5 |            1 | msisdn      | A         |     8825169 |     NULL | NULL   |      | BTREE      |         |               |
+------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

我忘记了什么或者是否都是背景材料?

1 个答案:

答案 0 :(得分:1)

My Tips

如果3个节点在地理上分散,COMMIT上的延迟成本很高。

您是在与单台服务器进行比较吗?还是复制设置?或者是其他东西?客户端是否在服务器中有一个节点?是否涉及负载均衡器或代理?

如果您没有重新调整几个InnoDB设置,Galera将无法获得最佳效果。我们来看看你的配置文件。 (或发布SHOW VARIABLESSHOW GLOBAL STATUS,以及RAM大小。)

哪些查询显示降级?看看它们可能有助于我们专注于这个问题,并希望是一种解决方法。