Melhor maneira de criar uma visão materializada no MySQL


18

Estou usando o MySQL 5.6. Não estou conseguindo criar uma visão materializada como no Oracle. Eu já vi uma ou duas soluções como o Flexview.

Alguém pode me dizer a melhor maneira de criar uma exibição materializada no MySQL (atualização automática como no Oracle) com o mínimo de complexidade?

Respostas:


11

As visualizações materializadas não existem no MySQL.

Flexviews foi recomendado no DBA StackExchange antes

Como você já o possui, pode ser necessária alguma diligência e graxa de cotovelo de sua parte para continuar a usá-lo (se você ainda não o fez)

ALTERNATIVA # 1

Você pode configurar as tabelas de resumo. Você precisará indexar suas tabelas base para dar suporte à agregação antes de criar tabelas de resumo.

ALTERNATIVA # 2

Aqui está um post antigo de http://www.materialized.info/, que tem uma estratégia mais prática que parece intrigante. Envolve o uso de gatilhos. Parece que poderia ser divertido ...

ALTERNATIVA # 3

Se suas tabelas base não são tão grandes e você pode consultar tabelas inteiras uma vez por semana, tente a User Commentsseção da documentação do MySQL em CREATE VIEW para obter idéias. Procure por palavras materializednessa página.


Na versão mais recente do MySQL, você pode criar a tabela materliazed dba.stackexchange.com/a/226707/50702
Revious

1

Encontrei 2 soluções possíveis para ter visualizações materializadas no MySQL:

  1. Crie uma tabela de agregação com todos os dados necessários e, em seguida, crie acionadores nas tabelas de onde os dados vêm.

  2. Crie um planejador que agregue periodicamente os dados em uma tabela

Veja mais detalhes sobre como implementar as 2 opções no meu blog aqui: materialized view MySQL


0

Se seus dados subjacentes são praticamente estáveis ​​ou você pode tolerar a diferença entre a visualização e os dados, considere usar as ferramentas simple-rolap , que escrevi para tratar desse caso de uso. Isso permite que você escreva em arquivos separados consultas SQL complexas que geram tabelas. Os relacionamentos entre as consultas são derivados automaticamente e as consultas são executadas na ordem apropriada por meio da ferramenta de criação do Unix . Para atualizar as tabelas geradas, você precisa executar make clean all. A ferramenta é útil principalmente para a construção gradual de consultas sofisticadas que são executadas com eficiência com base nos resultados pré-calculados de suas entradas.


Você provavelmente deve tornar a divulgação (de que você é o autor da ferramenta) mais proeminente.
mustaccio

Bom ponto! Eu editei a resposta para esclarecer isso.
Diomidis Spinellis
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.