таблицу тестовыми данными, но генерилка такая, что данные получились несколько неправдоподобно упорядоченными. Хочется как-то переупорядочить строки плюс-минус рандомно (чтобы correlation правдоподобный получился).
create index on <table> (md5(id::text)) ?
и потом по нему сделать cluster? Хм, вариант, спасибо.
Если место позволяет, сделайте на её основе ещё одну таблицу, используя TABLESAMPLE, сортировку по random() или по случайным ctid's (чуть сложнее но тоже возможно).
А в postgres есть плохие случаи для MD5?
Не понял вопроса.
Ну добавьте соль
Мы используем md5-хэш от каких-то данных о клиенте. После залива данных в Постгрес и их маскировки этот запрос бежит уже вторую неделю супротив какого-то разумного времени в Oracle. Могла резко повысившаяся энтропия данных сыграть против?
Реально это ваш код
Не надо гадать. Показывайте закреп https://t.me/pgsql/303899 (Можно вот этим скриптом https://t.me/pgsql/476688 , но analyze у вас вряд ли получится, так что пока можно без него).
Да я сам первый раз две недели вижу 🤦♀️
Да действительно ошиблись в условиях left outer join - получили NestedLoop 5000000 на 10000000 по условию через этот самый md5
Обсуждают сегодня