Maison > Questions et réponses > le corps du texte
1. Je souhaite compter le nombre de nouveaux clients aujourd'hui, le nombre de nouveaux clients hier et le nombre d'enregistrements de suivi aujourd'hui. La quantité de données est très importante. La méthode utilisée auparavant est de plus 1 moins 1. , mais des erreurs surviennent souvent. Comment résoudre ce problème statistique ? Dois-je utiliser le comptage ?
PHP中文网2017-05-16 13:13:10
Il est préférable de ne pas effectuer de statistiques sur de grandes quantités de données directement sur la base de données principale - la méthode consistant à ajouter 1 et à soustraire 1 sans verrouiller la table est inexacte. Le verrouillage de la table affecte les performances et les performances de comptage seront également médiocres.
Il est recommandé de séparer la fonction statistique en un sous-système, et le serveur d'entreprise notifie l'opération d'ajout/suppression de clients à ce sous-système statistique via la file d'attente des messages.
Dans ce sous-système, vous pouvez envisager d'utiliser une base de données de séries chronologiques (telle qu'Elasticsearch open source) pour le stockage, ce qui est très pratique pour les statistiques. Même si vous n'avez pas besoin d'une base de données de séries chronologiques spéciale et utilisez MySQL directement, vous pouvez créer une base de données MySQL distincte, de sorte que la table de verrouillage puisse être augmentée de 1, soustraite de 1 ou comptée. Ce n'est de toute façon pas la base de données principale. .
ringa_lee2017-05-16 13:13:10
S’il s’agit d’un identifiant à incrémentation automatique, il peut être calculé en soustrayant le dernier d’hier du dernier d’aujourd’hui.
Le tableau de statistiques utilisé est plus 1 et moins 1
Utilisez le nombre