Оптимизация запросов в массивных таблицах - PullRequest
0 голосов
/ 02 октября 2011

У меня есть стол с кирпичными и минометными магазинами. Таблица содержит около 15 миллионов строк с 30 столбцами.

На данный момент время запроса для поиска магазина, когда пользователь вводит название магазина, составляет от 15 до 20 секунд (мы отображаем список автозаполнения, чтобы пользователь мог непосредственно выбирать из списка).

Я бы хотел, чтобы время запроса составляло 2-3 секунды, чтобы пользователи не чувствовали разочарования.

Какие действия я должен предпринять для достижения этой цели? (В настоящее время я нахожусь на Linode с базой данных MySql ... может быть, поможет Simple DB?)

1 Ответ

5 голосов
/ 02 октября 2011

Если все, что вы делаете, это простой экви-поиск или поиск по префиксу в определенном поле, добавление индекса в этом поле должно помочь.

Если вы делаете что-то более сложное, чем это, вы должны знать, что в настройке производительности базы данных нет никаких серебряных пуль. Вам нужно понять оба:

  • характер ваших данных (как они доступны и изменены)
  • и как на самом деле работают индексы и другие методы работы с базами данных.

Для введения в тему я настоятельно рекомендую прочитать Использовать Индекс Луки .

...