Pergunta

Estou trabalhando em um projeto Rails e tenho um banco de dados legado, que é utilizado por outras aplicações, portanto sua estrutura não pode ser modificada.O problema é que os nomes das tabelas e colunas não seguem as convenções do Rails.Uma solução comum para isso é criar visualizações MySQL que apenas alias as colunas corretamente.

Estas são visões extremamente simples que apenas têm

SELECT old_column_1 AS new_column_1, old_column_2 AS new_column_2 FROM table_name;

Algumas tabelas são muito grandes, como 22 milhões de linhas (2GiB).Todas as tabelas são MYISAM.Também há um MEMORY tabela com 2 milhões de linhas (~350MiB)

A questão principal é quanto de sobrecarga eu obtenho com essas visualizações e se isso de alguma forma impacta ROW LOCK ou TABLE LOCK durante INSERTou JOINé?

Foi útil?

Solução

YMMV.Visualizações às vezes não conseguem fazer as mesmas otimizações, levando a uma execução mais lenta do que realizar o SELECT diretamente.Como o seu caso é simples, provavelmente você não sofrerá nenhuma sobrecarga perceptível.

INSERTs através de um VIEW têm limitações;parece que você não vai acertá-los.Leia o manual.

JOINs é um local onde o otimizador pode deixar a bola cair;sugiro que você experimente isso off-line antes de se comprometer a fazer a alteração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top