1

голосов
0

ответ
71

Просмотры

Django ORM исключить не удается

У меня есть некоторые проблемы с моим запросом - с фильтром () это нормально, но с исключением () не работает. Мои модели: класс Dictionary (DateTimeModel): base_word = models.ForeignKey (BaseDictionary, related_name = _ ( 'dict_words')) слово = models.CharField (max_length = 64) версия = models.ForeignKey (Version) класс FrequencyData (DateTimeModel): слово = models.ForeignKey (словарь, related_name = _ ( 'frequency_data')) = кол models.BigIntegerField (нуль = True, пустой = True) Источник = models.ForeignKey (Источник, related_name = _ ( 'frequency_data'), нуль = Правда, пустой = True) пользователь = models.ForeignKey (settings.AUTH_USER_MODEL, related_name = _ ( 'frequency_data')) user_ip_address = models.GenericIPAddressField (нуль = True, пусто = True) date_of_checking = models.DateTimeField (нуль = True, пусто = True) is_checked = модели. BooleanField (по умолчанию = False) И я хочу, чтобы получить какое-то слово из словаря, где частоты которых не от какого-либо пользователя Dictionary.objects.prefetch_related ( 'frequency_data') фильтра (frequency_data__user = 1). [: 100] - OK Dictionary.objects. . prefetch_related ( 'frequency_data') исключить (frequency_data__user = 1) [100] - процессор до 100% и загрузку Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6) 100] - процессор до 100% и загрузки Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6) 100] - процессор до 100% и загрузки Без prefetch_related то же самое. Что с исключить? ED словарь дб Tabel - 120k строк FrequencyData - 160k строки EDIT2 PSQL (9.6.6)
Mike Br
3

голосов
2

ответ
223

Просмотры

PostgreSQL: Количество запросов занимает слишком много времени

У меня есть некоторые проблемы с моим запросом - это занимает слишком много времени: SELECT COUNT (*) AS "__count" ОТ "dictionary_dictionary" ГДЕ НЕ ( "dictionary_dictionary" "идентификатор" IN (SELECT U1 "word_id" (2636124 мс!).. КАК Col1 ОТ "dictionary_frequencydata" U1 где U1 "user_id" = 1)).; Этот запрос генерируется ОРМ (Django). Когда я пытаюсь выполнить его (с ОРМ) мое приложение зависает, а также, когда я вставил в PSQL - Psql зависаний. EXPLAIN ANALYZE: Совокупный (стоимость = 329583550.40..329583550.41 строк = 1 ширина = 8) (фактическое время = 2636109.932..2636109.933 строки = 1 петли = 1) -> СтартПослед сканирования на dictionary_dictionary (стоимость = 0.00..329583390.76 строк = 63856 ширина = 0) (фактическое время = 2636109.922..2636109. Kolumna | Typ | Porównanie | Nullowalne | Domyślnie | Przechowywanie | Cel statystyk | Opis ---------------------- + -------------------------- + ------------ + ------------ + ----------------------- --------------------------------------------- + ---- ------------ + --------------- + ------ идентификатор | целое число | | не пустой | NEXTVAL ( 'dictionary_dictionary_id_seq' :: regclass) | равнина | | date_created | Отметка времени с часовым поясом | | не пустой | | равнина | | date_modified | Отметка времени с часовым поясом | | не пустой | | равнина | | слово | характер Различные (64) | | не пустой | | продлен | | algorithm_version_id | целое число | | не пустой | | равнина | | base_word_id | целое число | | не пустой | | равнина | | Indeksy: "dictionary_dictionary_pkey" первичный ключ, ВТКЕЙ (ID) "dictionary_phonet_algorithm_version_id_0f0af100" ВТКЕЙ (algorithm_version_id) "dictionary_dictionary_base_word_id_8db15cb4" ВТКЕЙ (base_word_id) Ograniczenia kluczy obcych: "dictionary__algorithm_version_id_0f0af100_fk_phonetic_" FOREIGN KEY (algorithm_version_id) СПИСОК ЛИТЕРАТУРА dictionary_algorithmversion (ID) откладываемые INITIALLY DEFERRED "dictionary__base_word_id_8db15cb4_fk_phonetic_" ИНОСТРАННЫЙ KEY (base_word_id) ЛИТЕРАТУРЫ dictionary_grammaticaldictionary (идентификатор) откладываемые INITIALLY DEFERRED Wskazywany przez: ТАБЛИЦА "dictionary_frequencydata" CONSTRAINT "dictionary__word_id_c231110d_fk_phonetic_" FOREIGN KEY (word_id) ЛИТЕРАТУРЫ dictionary_dictionary (ID) откладываемые INITIALLY DEFERRED ========= \ d + dictionary_frequencydata Tabela "public.dictionary_frequencydata" Kolumna | Typ | Porównanie | Nullowalne | Domyślnie | Przechowywanie | Cel statystyk | Opis ------------------ + -------------------------- + --- --------- + ------------ + --------------------------- ------------------------------------ + ------------- --- + --------------- + ------ идентификатор | целое число | | не пустой | NEXTVAL ( 'dictionary_frequencydata_id_seq' :: regclass) | равнина | | date_created | Отметка времени с часовым поясом | | не пустой | | равнина | | date_modified | Отметка времени с часовым поясом | | не пустой | | равнина | | рассчитывать | BIGINT | | | | равнина | | user_ip_address | инет | | | | главная | | date_of_checking | Отметка времени с часовым поясом | | | | равнина | | is_checked | булево | | не пустой | | равнина | | source_id | целое число | | | | равнина | | user_id | целое число | | не пустой | | равнина | | word_id | целое число | | не пустой | | равнина | | Indeksy: "dictionary_frequencydata_pkey" PRIMARY KEY, ВТКЕЙ (идентификатор) " ВТКЕЙ (идентификатор_пользователь) "dictionary_frequencydata_word_id_c231110d" ВТКЕЙ (word_id) Ograniczenia kluczy obcych: "dictionary__source_id_38bb205a_fk_phonetic_" FOREIGN KEY (source_id) СПИСОК ЛИТЕРАТУРА dictionary_frequencysource (ID) откладываемые INITIALLY DEFERRED "dictionary__user_id_c6dfedce_fk_auth_user" внешний ключ (user_id) ссылка AUTH_USER (ID) откладываемые INITIALLY DEFERRED "dictionary__word_id_c231110d_fk_phonetic_" FOREIGN KEY (word_id) ЛИТЕРАТУРЫ dictionary_dictionary (ID) откладываемые INITIALLY DEFERRED Это виртуальный хостинг. Словарь дБ Tabel - 120k строк FrequencyData - 160k строк ВТКЕЙ (идентификатор_пользователь) "dictionary_frequencydata_word_id_c231110d" ВТКЕЙ (word_id) Ograniczenia kluczy obcych: "dictionary__source_id_38bb205a_fk_phonetic_" FOREIGN KEY (source_id) СПИСОК ЛИТЕРАТУРА dictionary_frequencysource (ID) откладываемые INITIALLY DEFERRED "dictionary__user_id_c6dfedce_fk_auth_user" внешний ключ (user_id) ссылка AUTH_USER (ID) откладываемые INITIALLY DEFERRED "dictionary__word_id_c231110d_fk_phonetic_" FOREIGN KEY (word_id) ЛИТЕРАТУРЫ dictionary_dictionary (ID) откладываемые INITIALLY DEFERRED Это виртуальный хостинг. Словарь дБ Tabel - 120k строк FrequencyData - 160k строк FOREIGN KEY (source_id) ЛИТЕРАТУРЫ dictionary_frequencysource (ID) откладываемые INITIALLY DEFERRED "dictionary__user_id_c6dfedce_fk_auth_user" FOREIGN KEY (user_id) ЛИТЕРАТУРЫ AUTH_USER (ID) откладываемые INITIALLY DEFERRED FOREIGN KEY (word_id) Лит "dictionary__word_id_c231110d_fk_phonetic_" dictionary_dictionary (идентификатор) откладываемые INITIALLY DEFERRED Это виртуальный хостинг. Словарь дБ Tabel - 120k строк FrequencyData - 160k строк FOREIGN KEY (source_id) ЛИТЕРАТУРЫ dictionary_frequencysource (ID) откладываемые INITIALLY DEFERRED "dictionary__user_id_c6dfedce_fk_auth_user" FOREIGN KEY (user_id) ЛИТЕРАТУРЫ AUTH_USER (ID) откладываемые INITIALLY DEFERRED FOREIGN KEY (word_id) Лит "dictionary__word_id_c231110d_fk_phonetic_" dictionary_dictionary (идентификатор) откладываемые INITIALLY DEFERRED Это виртуальный хостинг. Словарь дБ Tabel - 120k строк FrequencyData - 160k строк
Mike Br