Description
Les pages de Commandes et d’Abonnements de WooCommerce permettent aux propriétaires de boutiques de rechercher des commandes et des abonnements par nom de client, e-mail et autres attributs. Par défaut, elle effectue une recherche de sous-chaîne générale. Par exemple, si vous mettez OllieJones dans la boîte de recherche, cela recherchera avec LIKE '%OllieJones%'
en utilisant le joker initial %
. Cela est étonnamment lent sur les sites avec de nombreuses commandes.
Lors de l’activation, cette extension lance un processus en arrière-plan pour créer une table d’index spéciale, une table de trigrammes, pour accélérer cette recherche. Ensuite, elle utilise ces trigrammes pour rechercher les commandes.
L’inconvénient : la table de trigrammes prend de l’espace dans la base de données et prend du temps à générer.
La page des commandes contient elle-même une requête très lente (qui sera corrigée dans Woocommerce 9.0.0) pour rechercher les meta_keys. Cela améliore également la performance de cette requête.
Crédits
Merci à Leho Kraav d’avoir attiré mon attention sur ce problème.
Merci à Sebastian Sommer et Maxime Michaud d’avoir utilisé les premières versions de l’extension sur de grandes boutiques, et à Maxime Michaud pour avoir réalisé la traduction en français.
Merci à JetBrains pour l’utilisation de leurs outils de développement logiciel, notamment PhpStorm. Il est difficile d’imaginer comment une extension comme celle-ci pourrait être développée sans les outils de PhpStorm pour explorer des bases de code épiques comme celle de WordPress.
Comment puis-je en apprendre davantage pour rendre mon site WordPress plus efficace ?
Nous proposons plusieurs extensions pour améliorer l’efficacité de la base de données de votre site. Vous pouvez en lire plus ici.
Installation
Suivez la procédure habituelle pour installer une extension depuis le dépôt d’extensions de wordpress.org.
FAQ
-
Quelle est la raison d’être de cette extension ?
-
Voyez cet incident WooCommerce pour un exemple du problème de performance que rencontrent les propriétaires de boutiques. Consultez cet incident Abonnements pour un autre exemple.
-
Quelle est la solution ?
-
Construisez une table de recherche de trigrammes, maintenez-la et utilisez-la pour les requêtes.
-
Combien d’espace prend la table de recherche de trigrammes ?
-
It takes about 5-10KiB per order, as MariaDB / MySQL database storage, counting both data and indexes. So, if your site has a million orders, the table will take something like 5-10 GiB.
-
Combien de temps faut-il pour générer la table de recherche de trigrammes ?
-
Lorsque vous activez l’extension, celle-ci commence à générer la table en arrière-plan. Tout continue normalement pendant que l’extension génère la table.
La génération de la table semble prendre environ dix secondes (en arrière-plan) pour chaque millier de commandes.
-
Fonctionne-t-il avec le High-Performance Order Storage (HPOS) ?
-
Oui.
-
Fonctionne-t-il avec le stockage de commandes pré-HPOS ?
-
Oui.
-
La table de recherche semble être obsolète. Je ne trouve pas les commandes récentes. Que dois-je faire ?
-
- Informez l’auteur en créant un issue à l’adresse https://github.com/OllieJones/fast-woo-order-lookup/issues
- Désactivez, puis activez l’extension. Cela reconstruit la table de recherche.
-
Qu’est-ce que cette table wp_fwol créée par l’extension ?
-
Cette table, nommée avec une abréviation pour « Fast Woo Order Lookup », contient les recherches de trigrammes. Son nom est concis pour raccourcir les requêtes. Elle est supprimée automatiquement si vous désactivez l’extension.
-
Ma boutique n’a que quelques centaines de commandes. Ai-je besoin de cette extension ?
-
Cette extension résout des problèmes de performance de la base de données qui ne se manifestent que sur les boutiques avec des dizaines de milliers de commandes. Si votre boutique est plus petite, vous n’en avez probablement pas besoin.
Les propriétaires avisés de boutiques en pleine croissance reviennent régulièrement pour examiner les performances de leur site. Si votre site est encore petit, il est préférable d’attendre d’avoir réellement besoin d’extensions et de fonctionnalités d’optimisation des performances. Les installer « juste au cas où » est inefficace.
Avis
Contributeurs/contributrices & développeurs/développeuses
« Fast Woo Order Lookup » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
Contributeurs“Fast Woo Order Lookup” a été traduit dans 3 locales. Remerciez l’équipe de traduction pour ses contributions.
Traduisez « Fast Woo Order Lookup » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal
1.1.3 October 7, 2024
Handle tables and colums with character sets other than $wpdb->charset.
1.1.1 August 12, 2024
- Limitez la durée d’exécution par lot à 25 secondes. Incluez un script shell cronjob pour purger les actions ActionScheduler périmées.
1.1.0 August 11, 2024
- Some MariaDB / MySQL versions implicitly cast integers to latin1 strings causing problems. Explicit casting fixes the issue.