Почему запрос Django, который ищет объект с определенным идентификатором, медленнее в большой БД, чем в меньшей? - PullRequest
0 голосов
/ 05 октября 2018

Почему такой запрос:

MyModel.objects.get(id=1)

работает медленнее, даже чуть-чуть, на очень большой таблице БД, чем на маленькой таблице БД ?.(например, таблица 10 строк против таблицы строк 1 миллион)

Это явно связано с SQL или это связано с программным обеспечением, которое обрабатывает запрос (в данном случае, Django)?

1 Ответ

0 голосов
/ 05 октября 2018

Django не "обрабатывает запрос".На самом деле он запускает необходимые команды SQL для поиска данного объекта.

Это явно связано с SQL или это вызвано программным обеспечением, которое обрабатывает запрос (в данном случае, Django)?

Ну, это не так просто.С большой базой данных многое начинает учитываться. Например, насколько хорошо ваше оборудование.Насколько быстры ваши диск и процессор, сколько оперативной памяти и т. Д.

Вот почему, когда ваша база данных растет, и вы начинаете видеть снижение производительности, вам необходимо кэшировать базу данных или, по крайней мере, часто используемые объекты,в оперативной памятиЕсли ОЗУ слишком дорого или не может быть обновлено, есть еще один метод, называемый Sharding , который в основном распространяет базу данных на несколько серверов.

Я уверен, что поиск в Google будетпривести множество подробных статей об оптимизации производительности БД.

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