La pagination et le tri sont des fonctionnalités courantes dans les applications Web PHP, mais si elles ne sont pas optimisées correctement, cela peut affecter les performances. Cet article partagera quelques conseils d'optimisation pour améliorer la pagination et l'efficacité de tri:
Utilisation de la limite et du décalage
Les mots clés de limite et de décalage peuvent limiter le nombre de résultats renvoyés par la requête et ignorer le nombre spécifié d'enregistrements. Par exemple:
$sql
=
"SELECT * FROM `table` LIMIT 10 OFFSET 20"
;
La requête ci-dessus commencera par le 20e enregistrement et renvoie 10 données.
Utilisation du cache de requête
Le cache de requête peut stocker des résultats de requête en double, réduisant ainsi le nombre de demandes à la base de données. Voici un exemple de cache de requête en utilisant des extensions APD dans PHP:
$stmt
=
$conn
->prepare(
"SELECT * FROM `table` LIMIT 10 OFFSET 20"
);
$stmt
->execute();
$stmt
->setFetchMode(PDO::FETCH_ASSOC);
$cache
=
array
();
while
(
$result
=
$stmt
->fetch()) {
$cache
[] =
$result
;
}
Utilisation d'index
L'indexation peut accélérer les données de requête dans les bases de données, en particulier les colonnes d'indexation qui sont souvent utilisées comme conditions de tri.
Évitez de trier les requêtes
Si possible, déplacez la logique de tri de la requête de la base de données vers le code PHP, ce qui peut réduire la charge de la base de données. Par exemple:
$results
=
$conn
->query(
"SELECT * FROM `table`"
);
usort(
$results
,
function
(
$a
,
$b
) {
return
strcmp
(
$a
[
'name'
],
$b
[
'name'
});
Utiliser la pagination pour éviter la numérisation complète de la table
Pour les ensembles de données à grande échelle, évitez d'interroger tous les enregistrements à la fois, mais interroger les données par lots à travers des pages, ce qui peut améliorer considérablement les performances.
Supposons que vous ayez un tableau avec 1 million d'enregistrements. Si vous essayez d'obtenir et de trier toutes les données à la fois, cela peut prendre beaucoup de temps. En appliquant les stratégies d'optimisation suivantes:
Avec ces méthodes d'optimisation, vous pouvez améliorer considérablement l'efficacité d'exécution des opérations de pagination et de tri.