Explication détaillée des étapes pour optimiser les statistiques de données dans une période de temps fixe à l'aide de PHP+MySQL

php中世界最好的语言
Libérer: 2023-03-26 13:14:01
original
2126 Les gens l'ont consulté

Cette fois, je vais vous apporter une explication détaillée des étapes permettant à PHP+MySQL d'optimiser les statistiques de données dans un délai fixe. Quelles sont les précautions pour PHP+MySQL pour optimiser les statistiques de données dans un délai déterminé. période de temps fixe. Voici des cas pratiques, jetons un coup d'œil.

Dans les projets Internet, l'analyse des données du projet est essentielle. Habituellement, la tendance des modifications quotidiennes totales des données sur une certaine période de temps est calculée pour ajuster la stratégie marketing. Regardons les cas suivants.

Cas

Il existe généralement un formulaire de commande dans la plateforme de commerce électronique pour enregistrer toutes les informations de commande. Nous devons maintenant compter le nombre de commandes et le montant des ventes par jour au cours d'un mois donné pour dessiner le graphique statistique suivant pour l'analyse des données.

La structure des données de la table de commande est la suivante :

order_id order_sn total_price enterdate
25396 A4E610E250C2D378D7EC94179E14617F 2306.00 01/04/2017 17:23:26
25397 EAD217C0533455EECDDE39659ABCDAE9 17.90 01/04/2017 22:15:18
25398 032E6941DAD44F29651B53C41F6B48A0 163.03 02/04/2017 07:24:36

À l'heure actuelle, comment interroger le nombre de commandes passées chaque jour d'un certain mois et le montant total ?

Méthode générale

La première et la plus simple façon de penser est d'utiliser la fonction php <a href="http://www.php.cn/wiki/1230.html" target="_blank">cal_days_in_month</a>() pour obtenir le nombre de jours dans le mois, puis construisez une liste de tous les jours du tableau mois, puis interrogez le total quotidien dans une boucle pour construire un nouveau tableau.

Le code est le suivant :

$month = '04';
$year = '2017';
$max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year);   //当月最后一天
//构造每天的数组
$days_arr = array();
for($i=1;$i<=$max_day;$i++){
  array_push($days_arr, $i);
}
$return = array();
//查询
foreach ($days_arr as $val){
  $min = $year.&#39;-&#39;.$month.&#39;-&#39;.$val.&#39; 00:00:00&#39;;
  $max = $year.&#39;-&#39;.$month.&#39;-&#39;.$val.&#39; 23:59:59&#39;;
  $sql = "select count(*) as total_num,sum(`total_price`) as amount from `orders` where `enterdate` >= {$min} and `enterdate` <= {$max}";
  $return[] = mysqli_query($sql);
}
return $return;
Copier après la connexion

Ce SQL est simple, mais il nécessite 30 requêtes à chaque fois, ce qui ralentit sérieusement le temps de réponse.

Optimisation

Comment utiliser un sql pour interroger directement la quantité totale de chaque journée ?

À ce stade, vous devez utiliser la fonction date_format de mysql pour connaître d'abord toutes les commandes du mois en cours dans la sous-requête, convertir la date d'entrée en jours à l'aide de la fonction date_format, puis regrouper les statistiques de jour group by. Le code est le suivant :

$month = '04';
$year = '2017';
$max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year);   //当月最后一天
$min = $year.'-'.$month.'-01 00:00:00';
$max = $year.'-'.$month.'-'.$max_day.' 23:59:59';
$sql = "select t.enterdate,count(*) as total_num,sum(t.total_price) as amount (select date_format(enterdate,'%e') as enterdate,total_price from orders where enterdate between {$min} and {$max}) t group by t.enterdate order by t.enterdate";
$return = mysqli_query($sql);
Copier après la connexion

De cette façon, 30 requêtes sont réduites à 1, et le temps de réponse sera grandement amélioré.

Remarque :

1 Étant donné que toutes les données du mois en cours doivent être interrogées, cette méthode ne convient pas lorsque la quantité de données est trop importante.

2. Afin d'éviter la perte de données causée par l'absence de données ce jour-là, après l'interrogation, les données doivent être traitées en fonction des besoins.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée des étapes pour implémenter l'authentification unique avec PHP

PHP+RSA génère une clé à 1024 chiffres Explication détaillée des étapes

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!