Я использую python / django как язык программирования / фреймворк.То, что мне нужно знать, полностью о postgresql и индексации ...
Для тех, кто использует django, вероятно, знают Content Type и Django Admin Log.Но в скором времени журнал администратора регистрирует действия пользователя.Я также использую его для регистрации всех действий, выполненных на сайте.Так что у него есть 1.000.000+ записей.Я использую sql-запросы для фильтрации результатов, вот и все ...
Проблема в том, что я использую два поля для выбора данных из разных таблиц.Одним из них является тип содержимого, в котором хранится информация о соответствующей таблице базы данных, а поле индексируется ...
Другое поле - идентификатор объекта, в котором хранится идентификатор связанного объекта, тип поля - varchar иполе не проиндексировано ...
Пример использования:
Select from django_admin_log where content_type_id=15 and object_id="12343545";
Поскольку content_type_id = 15 баллов, моя таблица blog_texts и идентификатор связанного объекта - 12343545, я могу легко получить связанноеdata ...
Но идентификатор_объекта не индексируется, и в таблице содержится более 1.000.000 записей. Запрос, подобный тому, который я пишу выше, занимает много времени.
Каковы будут преимущества иНедостатки использования индекса в object_id.Преимущества будут больше, чем недостатки или нет?
ОБНОВЛЕНИЕ: У меня нет обновлений в таблице журнала администратора.Он просто регистрирует каждое из действий пользователя ... 40.000-45.000 записей вставляются в таблицу каждый день.И система действительно занята в течение 2/3 дня, около 15-16 часов (с утра до вечера).Таким образом, 45.000 записей вставляются в период с 8:00 до 23:00 ...
Итак, с этой точки зрения, это приведет к чрезмерному перерасходу базы данных при создании индексов?
ОБНОВЛЕНИЕ 2: Еще одновопрос.Другая таблица с 2.000.000+ записей с логическим полем.Поле - это что-то вроде «будет отображаться», и оно используется с другими критериями фильтра.Логично ли создать индекс для такого логического поля.
Вторым условием является индексирование полей логического и даты-времени вместе в таблице с 1 000 000 записей ...
Использование индексадля этих двух состояний хорошая идея или нет?