Maison >base de données >tutoriel mysql >Présentation de plusieurs méthodes d'optimisation pour les grandes tables multi-champs Mysql
Il existe un tableau Big Data avec 30 champs int
varchar
text
Tous les champs sont disponibles. Plus de 1000 données seront ajoutées chaque jour. Il y a 10 champs fréquemment recherchés.
J'ai demandé conseil à quelqu'un et j'ai obtenu une réponse similaire. Je pense que ce genre de question est un peu faux. Ce genre de problème ne se produit pas dans la réalité, n'est-ce pas ?
Plan d'optimisation :
Synchronisation maître-esclave + séparation lecture-écriture :
Ce tableau peut séparer la lecture et l'écriture en cas de conditions d'équipement, ce qui peut réduire considérablement pression, et la stabilité des données peut également être améliorée
Division verticale des tables :
Selon le principe, chaque table ne doit pas avoir plus de 5 index, diviser les champs verticalement et diviser certains champs dans un nouveau tableau
Habituellement, nous le divisons verticalement selon les principes suivants : (Distinguez d'abord les champs de données chaudes et froides dans ce tableau)
Mettez les champs rarement utilisés dans un tableau séparé ;
Put text
, blob
et autres grands champs sont divisés et placés dans la table ci-jointe ;
les colonnes qui sont souvent combinées et interrogées sont placées dans une seule table
L'inconvénient est : a beaucoup de logique doit être réécrite, ce qui entraîne beaucoup de problèmes de charge de travail.
Utiliser le partitionnement de table :
Il s'agit d'une solution recommandée qui n'implique pas de réécriture de logique, etc. Le partitionnement de table peut être effectué en fonction du temps, ce qui équivaut à la même chose. Sur le disque, les données de la table sont stockées dans différents dossiers, ce qui peut grandement améliorer la vitesse des requêtes.
Partagement de table horizontal :
Il y a beaucoup de données de 1 000 W, ce qui entraînera une certaine pression de fonctionnement et de maintenance lors de la sauvegarde, une sauvegarde d'une seule table prendra beaucoup de temps. temps, afin que les tables soient divisées horizontalement en fonction des conditions matérielles du serveur et de la quantité de données dont dispose chaque table.
S'il y a quelque chose qui ne va pas, veuillez le signaler, merci.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!