1. Contexte du problème : la page d'accueil affiche les données dans des tableaux et prend en charge l'exportation des données vers des fichiers EXCEL. L'interrogation de la base de données est parfois très lente (par exemple, la plage de temps est longue [2 ans] et le temps d'exécution de l'instruction SQL est de près de 220 s)
Généralement, les données exportées doivent-elles être réinterrogeées dans la base de données, ou peuvent-elles les données obtenues auprès de la réception soient-elles directement transmises à PHPExcel pour traitement
Merci à tous ceux qui ont répondu ?
PS : j'ai fait de mon mieux pour optimiser l'instruction SQL (le partitionnement d'index a été effectué pour plusieurs tables et 3 millions de données de table). Si le temps d'exécution de la requête est d'environ 1,6 s par semaine, cela prendra plusieurs minutes). pour vérifier le nombre d'années.
Les tableaux HTML peuvent être exportés directement vers xlsx ;
Si 1 n'est pas utilisé, les données acquises seront mises en cache avant que le front-end n'affiche les données, et elles pourront être renvoyées au back-end lors de l'exportation sans avoir besoin d'une autre opération de base de données
2 est que la quantité de données se situe dans la plage acceptable de la communication front-end et back-end (par exemple, si elle dépasse 50 Mo, elle est trop grande), et la consommation de communication est sacrifiée pour le consommation de la base de données.
En fait, js a un plug-in qui peut traiter Excel, mais n'obtenez-vous pas toujours les données dans le frontend depuis le backend
?Plug-ins JS Excel, Baidu en a un tas, comme exceljs
Certains logiciels de gestion MySQL, comme Navicat, peuvent exporter directement la base de données vers Excel. Vous n'avez pas besoin d'utiliser PHP pour exporter. Bien que je puisse tout réaliser avec le meilleur langage du monde, vous devez également considérer que d'autres choses peuvent le faire. également être atteint
Personnellement, je ne prends pas en charge la récupération des données en arrière-plan. Vous pouvez directement exporter le code HTML vers Excel comme indiqué ci-dessus. Bien sûr, vous pouvez le traiter en arrière-plan, mais lorsque vous affichez les données en HTML, mettez en cache. les données vers le serveur. Si vous exportez Excel, lisez les données directement depuis la zone de cache, puis exportez-les vers Excel
Généralement, l'exportation de données vers EXCEL est une opération back-end. Ici, l'utilisateur sélectionnera certaines conditions pour exporter les données. Si le backend prend du temps, il peut être traité à l'aide de tâches asynchrones.
Posez la question, je veux savoir si exporter des données signifie exporter toutes les données ? Ou puis-je choisir une plage horaire ? Si vous exportez tout, vous pouvez exécuter une tâche planifiée en arrière-plan. Choisissez un moment où le nombre de clients est faible, comme aller en arrière-plan la nuit pour vérifier toutes les données, puis l'obtenir simplement lors de l'exportation. période précédente. La tâche planifiée vérifiera également les données régulièrement chaque jour. Est-ce la dernière
.