Vue Materialise
Quelle est une vue matérialisée?
Une vue matérialisée (MV) est le résultat pré-calculée (matérialisée) d'une requête. Contrairement à une vue simple le résultat d'une vue matérialisée est stocké quelque part, généralement dans un tableau. Vues matérialisées sont utilisées lorsque la réponse immédiate est nécessaire et que la requête d'où la vue sur les bases matérialisées prendrait trop longtemps pour produire un résultat. Vues matérialisées doivent être rafraîchi de temps en temps. Cela dépend de la façon dont les exigences souvent une vue matérialisée est rafraîchie et comment réelle de son contenu est. Fondamentalement, une vue matérialisée peut être rafraîchi immédiatement ou à terme, il peut être actualisé en totalité ou un certain point dans le temps. MySQL ne fournit pas vues matérialisées par lui-même. Mais il est facile de construire des vues matérialisées vous-même. Mettre en œuvre vos propres vues matérialisées
Un petit exemple de la façon dont cela pourrait être fait est la requête suivante:
SELECT COUNT(*)
FROM MyISAM_table;
renvoie un résultat immédiat parce que le compteur est stockée dans l'en-tête de la table. La requête suivante peut prendre quelques secondes à minutes:
SELECT COUNT(*)
FROM innodb_huge;
Une solution possible serait de créer une table où tous les chefs de ligne, InnoDB sont stockés dans:
CREATE TABLE innodb_row_count (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
, schema_name VARCHAR(64) NOT NULL
, table_name VARCHAR(64) NOT NULL
, row_count INT UNSIGNED NOT NULL
);
n fonction de la justesse nécessaire de cette information, le tableau peut être actualisée une fois par jour (moins utilisé les ressources du système, mais plus grosse erreur dans le résultat), une fois par heure ou dans le cas le plus extrême, après chaque changement (le plus lent)!
Une autre possibilité serait d'obtenir les données à partir du schéma de l'information. Mais cette information peut être jusqu'à 20% tort!
SELECT table_schema, table_name, table_rows FROM information_schema.tables
WHERE table_type = 'BASE TABLE';
Actualiser les vues matérialisées
Vues matérialisées peuvent être actualisées de différentes manière:
- jamais (une seule fois au début, pour des données statiques seulement)
- sur demande (par exemple une fois par jour, par exemple après le chargement de nuit)
- immédiatement (après chaque instruction)
Une actualisation peut se faire par les moyens suivants:
- complètement (lent, plein de zéro)
- différée (rapide, par une table de journal)
En stockant les informations de modification dans une table de journalisation. En outre, certains clichés ou retardées temps, les États peuvent être produites:
- rafraîchir à jour
- rafraîchissement complet