Эффективность MySQL в том, что касается размера базы данных / таблицы - PullRequest
0 голосов
/ 22 апреля 2010

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

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

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

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

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

1 Ответ

1 голос
/ 22 апреля 2010

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

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

...