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

У меня вопрос по использованию индексов. Есть таблица с движком

merge tree, каждый день в нее льется порядка миллиарда записей. Есть строковый столбец, выглядящий примерно так: a.b.c.d.{*id*}.e, где в качестве id может быть разношорстная информация, а сам id может располагаться в разных частях строки, но всегда обрамлён и его можно без проблем выкинуть регуляркой. А a.b.c.d. определяют класс принадлежности значений.
Обычно субд не используют индексы, если в левой части условия столбец из индекса каким либо способом преобразуется. Но кх то необычный :)
Поэтому я решил попробовать добавить в индекс столбец с регекспом, который выбросит из него все айдишики (как-то так MergeTree(date_column, (date_column, replaceRegexpAll(str_column, *regexp*, '')))). Ну и в дальнейшем в условиях запроса указывать этот регексп + конкретное условие с id.
Некоторый отчёт по этой таблице за сутки рассчитывается за ~30-40 минут.
После добавления индекса с регэкспом он стал выполняться за 10-20 секунд. Похоже, что индекс таки используется, несмотря на то, что в условии запроса к нему применяется регексп. Ну и собственно вопрос: насколько адекватен такой подход? Какие могут быть подводные камни?

P.S. да, разумно было бы хранить класс где-нибудь рядом, и положить в индекс его, но представим, что мы не можем на это повлиять (:

1 ответов

7 просмотров

O_o

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Привет, делаю self-hosted github actions runner'ы на k8s для автоскейлинга, они распостраняются в виде helm chart'а. Так же мне нужно будет собрать свой образ, залить его в CR...
florius0
6
Господа всем привет. Для того чтобы страница индексировалась с запросом под каждый город. Это нужно делать отдельные страницы для каждого города, или есть варианты по лучше?
Владимир
8
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
а я честно сказать не понимаю - нахуя идти учиться на вышку или еще куда-либо и при этом нихуя не делать, типа зачем ? просто корку получить, а нахуй она нужна тогда ?
Eugene Неелов
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта