Эффективность MySQL в том, что касается размера базы данных / таблицы

Я строю систему с использованием django, Sphinx и MySQL, которая очень быстро становится достаточно большой. База данных в настоящее время насчитывает около 2000 строк, и я написал программу, которая за пару дней заполнит ее еще 40 000 строк. Поскольку база данных сейчас работает, и поскольку у меня никогда не было базы данных с таким большим количеством информации, я беспокоюсь о некоторых вещах:

  1. Будет ли добавление всех этих строк серьезно ухудшать эффективность моего приложения django? Нужно ли мне возвращаться назад и оптимизировать все мои вызовы базы данных, чтобы они делали вещи более умно? Или это замедлит работу базы данных до такой степени, что я ничего не могу с этим поделать?

  2. Если вы смеетесь над моими 40-тысячными строками, тогда мой следующий вопрос: в какой момент я должен быть обеспокоен? Я, скорее всего, скоро добавлю еще пару сотен тысяч, так что я волнуюсь и волнуюсь.

  3. Как сфинкс будет чувствовать обо всем этом? Будет ли это волновать, когда он поймет, что должен проиндексировать все эти данные? Или все будет хорошо? Это нормально для этого? Если да, то в какой момент я должен быть обеспокоен тем, что это слишком много данных для Сфинкса?

Спасибо за любые мысли.

1 ответ

Решение

Для обычных запросов 2000 строк - ничто - даже без индекса это будет очень быстро, поскольку вся таблица может быть кэширована в памяти. 100000 строк также должны работать нормально в большинстве ситуаций, хотя, если у вас нет соответствующих индексов или ваши запросы не используют доступные индексы, то вы заметите это сейчас - запросы, которые должны занимать секунды, могут занять минуты, если они не используют индексы правильно. Но это не займет много времени, чтобы решить проблему - запустите EXPLAIN для вашего медленного запроса и посмотрите, почему он медленный, и выясните, какие индексы вам нужны.

К тому времени, как вы доберетесь до миллионов строк или десятков миллионов строк, вам придется более тщательно продумывать дизайн вашей базы данных и свою стратегию индексирования. Можно сделать сотни миллионов строк в таблице, если все сделать правильно.

Другие вопросы по тегам