Недавно я просто переместил свою базу данных в кластер ndb, и у меня есть база данных с примерно 200.000 записей
Я пытаюсь выполнить этот запрос, чтобы получить ежемесячный отчет, но всегда получаю тайм-аут запроса в кластере ndb, когда я пытаюсь запрос на InnoDB дает быстрый результат запроса <1 сек. этот запрос: </p>
SELECT
m.merchant_name,
COUNT(CASE WHEN pay.payment_status = '00' THEN 1 ELSE NULL END) AS 'Success',
SUM(CASE WHEN pay.payment_status = '00' THEN pay.transaction_amount ELSE 0 END) AS 'Total success',
COUNT(CASE WHEN pay.payment_status != '00' THEN 1 ELSE NULL END) AS 'Fail',
SUM(CASE WHEN pay.payment_status != '00' THEN pay.transaction_amount ELSE 0 END) AS 'Total Fail',
COUNT(pay.trx_id) AS 'Total',
SUM(pay.transaction_amount) AS 'Total Amount'
FROM
(
SELECT
mchn.merchant_name,
mchl.channel_id
FROM
db_merchant mchn
LEFT JOIN db_merchant_channel mchl ON
mchl.merchant_id = mchn.merchant_id ) AS m
LEFT JOIN (
SELECT
x.trx_id,
x.channel_id,
fq.transaction_amount,
fq.transaction_status,
fs.payment_status
FROM
t_transaction x
LEFT JOIN flag_request fq ON
x.channel_id = fq.channel_id
AND x.transaction_no = fq.transaction_no
LEFT JOIN flag_response fs ON
fs.freq_id = fq.freq_id
WHERE
LEFT(DATE(fs.created_at),7) = '2020-03' ) AS pay ON
CONVERT(m.channel_id USING utf8) = CONVERT(pay.channel_id USING utf8)
GROUP BY
m.channel_id
объяснить результат из кластера ndb
объяснить результат из innodb
что возможно не так?