@strelkovandreyvalerievich

Как правильнее создать идею «материализованного представления» в MySQL/MariaDB?

Добрый день, имеется база данных MariaDB, внутри которой есть множество баз различной сложности, каждая база отвечает за свой род информации, примем как за факт, что ввиду сложности баз и информации, созданные views отображающих ту или иную информацию, но представления по скорости получаются тяжелыми, некоторые 5 сек выполняются, другие 10 и т.п. Вроде как для создания может какой то отчётности не критично, но сейчас появилась задача что нужно определенную информацию из views быстро выводить, и давать поиск по ней.
В голову приходит только самое простое решение, это по расписанию делать копию данных views в таблицу

И тут скорее больше вопрос как это лучше сделать, как устроен mysql. А именно, если например одна вьюха выполняется 30 секунд, т.е. я хочу уже в имеющуюся по структуре таблицу сначала TRUNCATE потом INSERT значения из вьюхи, в этот момент, когда идёт эта долгая копирка данных, как себя чуствует mysql, он спокойно принимает другие запросы, и особо ничего сложно не чуствует (т.е. скорость работы других запросов ощутимо, или нисколько даже не падает, единственное что коннект один на долго забирается)

И сразу вопрос, если у меня например таких 5 баз, в каждой по 5 views, наверное совсем не правильно их шелдулирить все в один момент, как правильнее, создать какую то одну процедуру, которая по очередно будет TRUNCATE+INSERT, TRUNCATE+INSERT,...
Или также в зависимости от необходимой актуальности данных, ещё каждую процедуру как то назвать аля EVERY_HOUR, EVERY_DAY и помещать туда нужные вьюхи.

Больше вопрос интересуют, как себя база данных чувствует в такие запуски
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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