Что дает лучшую производительность: name__iexact = name или name = name.lower () в Django? - PullRequest
1 голос
/ 22 мая 2011

Я пытаюсь решить, хочу ли я использовать name__iexact=name или name=name.lower() в запросе фильтра.Что дает лучшую производительность?Если я храню имя всегда в нижнем регистре.

Строки не должны превышать 10 символов, если это имеет значение.

1 Ответ

2 голосов
/ 22 мая 2011

Выполнение name = name.lower () будет работать лучше, поскольку вы делаете нижний регистр только один раз (или это не понадобится, так как вы упомянули, что вы уже сохранили его в нижнем регистре), а затем сравниваете с равенством в БД

Выполнение name__iexact = name будет немного медленнее, поскольку ORM будет выполнять «LIKE» вместо «=», таким образом оценивая, соответствует ли оно верхнему или нижнему регистру в каждой строке.

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