Во-первых, убедитесь, что ваша таблица правильно проиндексирована.У него есть первичный ключ?Является ли languageId
индексом?Убедитесь, что это так.
Во-вторых, вас интересует только слово, а не такие вещи, как languageId
или другие поля в таблице?Если вам это нужно, вам нужно:
SELECT word_field FROM Word...
Подстановочные знаки SELECT возвращают все, но вам не нужно извлекать данные, которые вы никогда не собираетесь использовать.
В-третьих, вы простовыполнить один и тот же запрос в цикле, если вы повторяете его много раз?Измените оператор LIMIT
, чтобы он возвращал больше слов в одном запросе:
-- for 10 words
... LIMIT 10
Вы можете сохранить этот результат для дальнейшего использования без необходимости повторного запроса к базе данных.
Наконец, вы можетезапустите ваш запрос, но с EXPLAIN
перед ним, чтобы получить представление о том, что делает MySQL при его запуске.
EXPLAIN SELECT word_field FROM Word...
Используя это, вы можете определить, где именно ваш запрос выполняется медленно.