Запрос MySQL SELECT занимает некоторое время в локальной копии Википедии - PullRequest
0 голосов
/ 14 марта 2012

У меня есть локальная копия Википедии (~ 30GO для английского), хранящаяся в базе данных MySQL.У меня есть два столбца:

  1. "заголовок", который является первичным ключом и заголовком статьи (varchar (238))
  2. "тело", который является содержанием статьи(mediumtext)

Моя проблема в том, что для очень простого запроса (с использованием первичного ключа) требуется некоторое время (~ 50 мсек, это слишком много, потому что я создаю программу, которая получает информацию из этих статейпоследовательность на 10 языках; 2 статьи (для каждого языка) / сек слишком мало).

Запрос следующий:

SELECT * FROM wiki_en WHERE title = "Appel" LIMIT 1

Я не знаю, почему это так долго(обычно мой запрос на выборку при использовании индекса занимает ~ 1 мс).

1 Ответ

0 голосов
/ 14 марта 2012

Попробуйте это:

analyze table wiki_en;

затем снова запустите запрос.

Кроме того, использование такой "широкой" клавиши не рекомендуется. Почему бы вам не использовать простое поле целочисленного идентификатора (например, 99% всех таблиц)?

Наконец, вы действительно определили title как PRIMARY KEY в своем определении таблицы? Если нет, вам нужно CREATE UNIQUE INDEX ... для этого столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...