Une table de commande d'une valeur de 100 millions peut être divisée en cinq tables , de sorte que chaque table ne contient que 20 millions de données, partageant la pression de la table d'origine. Les sous-tables doivent être divisées selon certaines conditions. Ici, les tables peuvent être divisées selon les régions. table va à la table pour trouver les données souhaitées.
Middleware : Utiliser l'ID auto-incrémenté de la table principale comme middleware (quels champs conviennent au middleware ? Il doit être unique)
Comment distribuer ? Après l'insertion dans la table principale, un identifiant est renvoyé et le modulo est pris en fonction de cet identifiant et du nombre de tables. Les données sont insérées dans la table dans laquelle se trouve le reste.
Remarque : L'identifiant de la sous-table doit être cohérent avec l'identifiant de la table principale
À l'avenir, seules les opérations d'insertion utiliseront la table principale, la modification, la suppression et la lecture n'auront pas besoin d'utiliser le tableau principal
Recommandations d'apprentissage associées : Programmation PHP de l'entrée au master
1. Qu'est-ce qu'une file d'attente de messages ?
Conteneur de sauvegarde des messages lors de la propagation des messages
2. Raisons historiques de la création de files d'attente de messages
Caractéristiques des files d'attente de messages : premier entré, premier sorti
Les instructions SQL exécutées sont d'abord enregistrées dans la file d'attente des messages, puis insérées séquentiellement dans la base de données de manière fluide et asynchrone
Application : Sina, placez d'abord les commentaires instantanés dans la file d'attente des messages, puis insérez les instructions SQL dans le message. file d'attente séquentiellement à travers les tâches planifiées. Accédez à la base de données
Sous-tableau des opérations pour modifier
. Il y a un problème avec cette modification, la table principale Il y aura des incohérences avec les données du sous-tableau. Comment rendre cohérentes les données du tableau principal et du sous-tableau ?
Une fois la modification terminée, les données de la table principale seront modifiées et stockées dans le file d'attente redis
Ensuite, la tâche planifiée Linux (contble) exécute l'instruction sql dans la file d'attente redis en boucle et met à jour le contenu de la table principale de manière synchrone
La requête doit uniquement interroger la sous-table, n'interrogez pas la table principale
Supprimer, recherchez d'abord l'objet en fonction de l'identifiant Supprimez la sous-table, puis supprimez-la, puis envoyez une instruction SQL pour supprimer toutes les données de la table dans la file d'attente des messages
puis exécutez une tâche planifiée pour supprimer les données totales de la table
Tâche planifiée :
Schéma de la sous-bibliothèque :
Remarque : après avoir exploité une base de données, vous devez fermer la connexion à la base de données, sinon MySQL pensera qu'elle est toujours connectée La même base de données
prend toujours le module pour déterminer quel fichier de configuration charger et se connecter à quelle base de données
Le principe est similaire à la nouvelle base de données de branche distribuée
Le principe est similaire
Supprimer
File d'attente d'exécution
Mettez les données dans le cache pour économiser la surcharge de la base de données. Vérifiez-les d'abord dans le cache. Si elles sont trouvées, supprimez-les directement. Sinon, vérifiez-les dans la base de données. le cache
Vous devez supprimer le cache après avoir modifié les informations, sinon les données mises en cache seront lues à la place des données modifiées
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!