Question

Je travaille donc sur un projet Rails et j'ai une base de données existante, qui est utilisée par d'autres applications, donc sa structure ne peut pas être modifiée.Le problème est que les noms de tables et de colonnes ne suivent pas les conventions Rails.Une solution courante consiste à créer des vues MySQL qui aliasent correctement les colonnes.

Ce sont des vues très simples qui ont simplement

SELECT old_column_1 AS new_column_1, old_column_2 AS new_column_2 FROM table_name;

Certaines tables sont très volumineuses, comme 22 millions de lignes (2 Go).Tous les tableaux sont MYISAM.Il y en a aussi un MEMORY table avec 2 millions de lignes (~ 350 Mo)

La question clé est de savoir quelle surcharge puis-je obtenir avec de telles vues et cela a-t-il un impact d'une manière ou d'une autre ? ROW LOCK ou TABLE LOCK pendant INSERTs ou JOINs?

Était-ce utile?

La solution

YMMV.Vues parfois ne parvient pas à effectuer les mêmes optimisations, ce qui entraîne une exécution plus lente que l'exécution de la SELECT directement.Étant donné que votre cas est simple, vous n’aurez probablement aucune surcharge notable.

INSERTs à travers un VIEW avoir des limites ;on dirait que vous ne les frapperez pas.Lisez le manuel.

JOINs est un endroit où l'optimiseur peut laisser tomber la balle ;Je vous suggère d'expérimenter cela hors ligne, avant de vous engager à effectuer le changement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top