MySQL “Sending data” ужасно замедляется

Я работал бы со слишком многими шаблонами, чем ни одним вообще. Однако надлежащий баланс является, конечно, целью.

15
задан OMG Ponies 18 September 2009 в 17:05
поделиться

2 ответа

DESCRIBE выглядит великолепно, простой однострочный.

Поскольку вы используете только одну таблицу в своем запросе, она не может быть ничем иным, кроме однострочника.

Однако ваш запрос не использует индекс FULLTEXT .

Чтобы индекс можно было использовать, вам следует немного переписать запрос:

SELECT  *
FROM    sqinquiries_inquiry
WHERE   MATCH (names, emails) AGAINST ('smith' IN BOOLEAN MODE)
ORDER BY
        id DESC
LIMIT 100

MATCH использует индекс, только если вы сопоставляете точный набор столбцов, для которых определен индекс.

Итак, ваш запрос использует сканирование индекса по id : Использование индекса; Использование where в самом конце вашего DESCRIBE .

Отправка данных вводит в заблуждение: на самом деле это время, прошедшее между окончанием предыдущей операции и концом текущей операции .

Например, я только что выполнил этот запрос:

SET profiling = 1;

SELECT  *
FROM    t_source
WHERE   id + 1 = 999999;

SHOW PROFILE FOR QUERY 39;

, который вернул одну строку и этот профиль:

32
ответ дан 1 December 2019 в 03:04
поделиться

Я думаю, вы передаете много данных при медленном сетевом соединении.

Вместо select * выбирайте только те столбцы, которые вам действительно нужны.

Если ваша таблица содержит большие текстовые поля, которые вы хотите отобразить в результате, вы можете использовать подстроку для передачи только первых нескольких символов / слов текста.

Некоторые клиенты поддерживают сжатие пакетов результатов. Может, ты хочешь взглянуть на это.

-8
ответ дан 1 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: