Индекс SQL по общему отношению Джанго
Возможно ли / целесообразно ли создать индекс SQL для GenericForeignKey в модели Django?
Я хочу выполнить поиск большого количества (~1 миллиона) объектов в моей базе данных postgreSQL. Мой поиск основан на GenericForeignkey для соответствующей модели, которая на самом деле хранится в виде двух полей: object_id (pk объекта, с которым связывается) и content_type (FK для модели Django ContentType, представляющей тип связываемого объекта к).
В терминах SQL это по существу:
WHERE ("my_model"."content_type_id" = x AND "my_model"."object_id" = y)
object_id
является неуникальным полем - поскольку общий FK может ссылаться на несколько моделей, возможно, что объекты разных типов будут иметь одинаковые pk
,
Мне интересно, могу ли я ускорить время запроса, создав неуникальный индекс my_model.object_id
, Мои знания об индексировании ограничены, поэтому я, возможно, неправильно понял их использование, но я знаю, что Django автоматически создает индексы для нормальных отношений ForeignKey, поэтому я предполагаю, что это связано с ускорением.
Кто-нибудь имел опыт создания индексов для GenericForeignKeys? Вы нашли результирующее повышение производительности? Любая помощь или понимание очень ценится.