184 похожих чатов

Добрый вечер. Как можно оптимизировать проверку в условии IN, если внутри

подзапрос возвращающий больше 100 млн значений?
Есть такой запрос:
select ...
from big_table
where ...
and obj_hash in ( select obj_hash from obj_white_list_100m )

Он проверяет, что значения obj_hash содержаться в "белом" списке объектов. Посмотрел в логах - там создаётся хэш-таблица, она занимает 10гб оперативки и на это уходит минута времени примерно.

Я сначала подумал использовать словарь и dictHas, но многовато наверное для словаря (больше 100 млн записей сейчас)?

3 ответов

8 просмотров

ну никак. Это самый быстрый вариант. Тут даже без КХ сложно придумать как это сделать быстрее.

А в select из большой таблицы, если не брать последнее отсечение по хэшу из whitelist, сколько получается данных? Правый whitelist динамический (может со временем меняться) или просто большая статическая таблица?

Можно переделать эту таблицу на engine=join, чтобы она всегда была в памяти

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта