MySQL хранится рутина против MySQL альтернативы? - PullRequest
0 голосов
/ 18 января 2011

Мы используем базу данных mysql с около 150 000 записей (имен).Наш поиск по полю 'names' осуществляется через функцию автозаполнения в php.Мы проиндексировали таблицу, но все еще чувствуем, что поиск немного вялый (несколько полных секунд по сравнению с чем-то вроде Google Finance с почти мгновенным ответом).Мы придумали w / 2 возможностей, но хотели получить больше информации:

  1. Можем ли мы создать группу (много тысяч или более) хранимых процедур для ускорения поиска или создадим этомногие хранимые процедуры прерывают работу базы данных?

  2. Есть ли более быстрая альтернатива mysql для операторов "select" (скорость при вставке и обновлении строк не слишком важна, поэтому мы можем пожертвовать этим, если необходимо).Я смутно слышал о BigTable и других, которые не поддерживают операторы JOIN .... нам нужны операторы JOIN для некоторых других наших запросов, которые мы делаем.

thx

Ответы [ 3 ]

1 голос
/ 18 января 2011
  1. Забудьте о хранимых процедурах. Они не принесут вам пользы.
  2. Mysql - хороший выбор, его часто считают самой быстрой СУБД. И нет необходимости искать «более быструю альтернативу выбору оператора».

Указанное вами ненормальное время выполнения запроса является результатом неправильной конфигурации сервера или неверной схемы базы данных, или обоих. Пожалуйста, прочитайте этот ответ на serverfault или обновите свой вопрос здесь: укажите конфигурацию сервера, часть схемы базы данных и проблемный запрос вместе с explain select ...

0 голосов
/ 18 января 2011

Да, вам нужно завершить кеш, если вы измените данные, но, как вы сказали, это не часто, так что вы можете даже сделать это на полуавтоматической основе и не беспокоиться об этом в случае необходимости.Вы должны проверить эту статью MySQL.com , а также, возможно, изучить механизм хранения MEMORY (извините, новый и не может публиковать более одной гиперссылки на сообщение ?!), который требует немного кодированияиспользовать, но может быть чрезвычайно эффективным.

Какое фактическое время запроса (против времени страницы)?На достаточно современном сервере, который не загружен в ад, MySQL должен иметь возможность выполнять автозаполнение запроса по 150 тыс. Строк намного, намного быстрее, чем за две секунды.Отсутствует несколько индексов?

0 голосов
/ 18 января 2011

Вам необходимо кэшировать информацию в памяти, чтобы избежать повторных обращений к базе данных.

...