我们正在评估一个 Galera 设置,到目前为止,除了一些具有糟糕读取性能的查询之外,我们还没有注意到许多缺点,我无法理解它。
查询本身并没有真正优化,但它在生产框上的返回时间不到 0.20 秒。在强大的 galera 3 节点设置上需要几分钟时间。(事实上,在更强大的硬件上)。
版本适用于 galera:
mysqld Ver 10.0.16-MariaDB-1~trusty-wsrep-log for
debian-linux-gnu on x86_64 (mariadb.org binary distribution, wsrep_25.10.r4144)
Run Code Online (Sandbox Code Playgroud)
和“旧”的生产机器
mysqld Ver 5.3.12-MariaDB-mariadb122~maverick for
debian-linux-gnu on x86_64 ((MariaDB - http://mariadb.com/))
Run Code Online (Sandbox Code Playgroud)
查询:
MariaDB [ticketing]> EXPLAIN SELECT DISTINCT `purchase`.`id`,
`purchase`.`invoiceid`, `purchase`.`userid`, `purchase`.`currencyid`, `purchase`.`purchasestatusid`, `purchase`.`isdeleted`,
`purchase`.`emailshistory`, `purchase`.`created`,
`purchase`.`paymentfee` FROM `purchase`
INNER JOIN `payment` ON payment.purchaseid = purchase.id
WHERE (invoiceid IS NULL) AND (purchasetypeid = 1)
AND (purchase.created >= '2015-01-19 10:40:17')
AND (paymenttypeid = 15) ORDER BY `created` DESC;
+------+-------------+----------+--------+-------------------------------------------------------------------+-----------------+---------+------------------------------+-------+----------------------------------------------+
| …Run Code Online (Sandbox Code Playgroud)