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

Есть ли смысл в RMT в order by добавлять еще

колонки для сортировки и соответственно улучшения перфоманса? Или в этом нет смысла?
РК таблицы id, но допустим есть поля которые я хотел бы добавить в order by для skip index тк например есть типы транзакций

14 ответов

15 просмотров

так вы ж тогда логику удаления строк сломаете, если к ключу еще добавите полей

Matvey- Автор вопроса
ivan
так вы ж тогда логику удаления строк сломаете, есл...

ну вот в этом и вопрос, допустим id+type+method все еще уникальная строка из-за id. Хочется понять есть ли способ как то replacing ускорить аналогично обычному merge tree

Matvey
ну вот в этом и вопрос, допустим id+type+method вс...

тогда нет смысла у вас на первом месте уникальное поле, все последующие поля можно считать рандомно распределенными, скипать будет нечего

Matvey
ну вот в этом и вопрос, допустим id+type+method вс...

если, конечно, у вас нет какой-то зависимости, что только у определенного интервала подмножества id есть определенный type

Matvey- Автор вопроса
ivan
если, конечно, у вас нет какой-то зависимости, что...

неа нету, но таблица хорошо делится на type и method допустим, что в обычном merge tree очень бы все ускорило( id = Uint64

Matvey
неа нету, но таблица хорошо делится на type и meth...

а чем replacing отличается от обычного mergetree? скорость будет одинаковая при одинаковом ORDER BY(вернее сказать PRIMARY KEY). Возможно имеет смысл сделать type, method, id => по увеличению кардинальности

Matvey- Автор вопроса
Konstantin Ilchenko
а чем replacing отличается от обычного mergetree? ...

я понимаю про order by, но тогда же поменяется ключ для удаления новых строк

Matvey
я понимаю про order by, но тогда же поменяется клю...

так вы же сказали что > id+type+method все еще уникальная строка

Matvey
неа нету, но таблица хорошо делится на type и meth...

тогда ключ надо делать (type, method, id) — от большего к меньшему

Matvey- Автор вопроса
ivan
тогда ключ надо делать (type, method, id) — от бол...

вот в этом и был вопрос, значит смысл есть Мерси Иван и Константин)

Matvey
вот в этом и был вопрос, значит смысл есть Мерси И...

вообще высококардинальное поле на первом месте индекса, это не для olap, это для всяких баз, где надо по айди достать одну строчку или один документ а olap запросы — это традиционно агрегаты по большим срезам данных, так что надо "вкладывать" меньшие срезы в бОльшие

Matvey- Автор вопроса
ivan
вообще высококардинальное поле на первом месте инд...

нене, я знаю принципы построения индекса в клике, возможно не так сформулировал первичный вопрос сейчас только по id индекс вопрос был в том что есть ли смысл в целом добавлять type и method в order by и будет ли он работать в replacing то что type, method, id для меня само собой))

Matvey
нене, я знаю принципы построения индекса в клике, ...

в принципе ответы на вопросы легко найти тестами если вы делаете выборки и группировки по другим полям, то, скорее всего, смысл есть как правильно выше ответили, нужно при этом понимать про гранулярности и, вероятно, уносить ID с первого места но если вы делаете связи по ID, то, может, унасть его в глубь и не надо тут нет универсального ответа так же от добавления полей в ключ меняется и поведение мерджа

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
например asm AT&T ... label: .string "hi" ... # not error lea label(%rip), %rax # error ( not compile ) mov %rip, %rax # not error mov (%rip), %rax из форумов прочитал чт...
Simple Sorcerer
6
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
Карта сайта