Я пытаюсь оптимизировать запрос, как показано ниже. У меня есть вопрос, как добавить индекс для улучшения производительности, но результат все еще медленный. Запрос выполнялся за 20 секунд, Transaction содержит около 100 тыс. Записей и объединяет таблицу TransactionDetail, содержащую около 500 тыс. Записей.Медленная производительность при соединении таблицы
SELECT Transaction.id ....
FROM Transaction
INNER JOIN Agent ON Agent.id = Transaction.agent_id
INNER JOIN Distributor ON Distributor.id = Transaction.distributor_id
INNER JOIN TransactionDetail ON Transaction.id = TransactionDetail.transaction_id
WHERE TransactionDetail.type = 'Admin'
AND Transaction.status IN ('pending', 'processing', 'success', 'rejected')
ORDER BY issued_date DESC LIMIT 0 , 10
из запроса выше я пытаюсь применить то, что я понимаю, о индексации
Я добавил 3 индекса из-за внутреннего соединения, транзакции (agent_id, distributor_id) и транзакций (TRANSACTION_ID)
из где положение я добавил Transaction (статус)
- из ORDER BY Я добавил Сделка (issued_date)
Но он не показывает каких-либо улучшений ниже, что я получаю от EXPLAIN
И это скриншот из PHPMyAdmin, которые показывают индексирование таблицы транзакций
Есть ли способ улучшить этот запрос? Или он уже оптимизирован, и я должен сосредоточиться на конфигурации mysql?
Пожалуйста, напишите мне комментарий, если вы думаете, что я должен добавить дополнительную информацию. –