1 votes

MYSQL déplacer des informations avec php

Je me demande s'il est possible d'automatiser ou d'appuyer sur un bouton pour déplacer les informations d'une table mysql vers une autre table, en les supprimant de la première table et en les plaçant dans une autre table. J'utilise php.

Ma table mysql est volumineuse et la page qui ajoute les informations à cette table contient 70 requêtes, ce qui ralentit le temps de rafraîchissement de la page. J'ai besoin de déplacer les informations de la première table vers la seconde à une certaine heure de la journée tous les jours afin que ces requêtes n'aient pas à parcourir l'ensemble de ma table géante de 27k lignes.

Est-ce possible ?

Par ailleurs, si quelqu'un pouvait m'aider avec mon commentaire sur cette page, je lui en serais reconnaissant. texte du lien

1voto

Paolo Points 11860

PHP ne dispose pas d'un serveur fonctionnant en permanence avec lequel il est possible de programmer des tâches en arrière-plan.

Si vous avez accès au serveur, vous pouvez mettre en place un travail cron (ou une tâche programmée sous Windows) pour exécuter le script PHP script pour vous.

Ou bien (et ce n'est pas si agréable), vous pouvez placer le script sur le serveur web et l'appeler manuellement au moment voulu en saisissant l'URL dans votre navigateur.

1voto

Victor Nicollet Points 16924

Un tableau de 27 000 lignes est petit selon les normes SQL, à condition qu'il soit correctement indexé.

Par exemple, si vous ne vous souciez pas des données d'hier, vous pouvez ajouter une colonne de date indexée et filtrer avec WHERE myDate > NOW() - INTERVAL 1 DAY et SQL limitera automatiquement la requête aux lignes datant de moins de 24 heures.

1voto

OMG Ponies Points 144785

Je me demande s'il est possible d'automatiser ou d'appuyer sur un bouton pour déplacer les informations d'une table mysql vers une autre table, en les supprimant de la première table et en les plaçant dans une autre table. J'utilise php.

Vous pouvez initier PHP, mais ce que vous demandez est en fait du ressort de MySQL.

Elle peut être réalisée en deux déclarations :

  1. Utiliser un Instruction INSERT INTO pour copier les lignes de l'ancien tableau dans le nouveau
  2. Supprimer l'ancien tableau

Je préférerais que cela se produise dans une procédure stockée pour des raisons de transaction et de facilité d'exécution (au cas où vous voudriez qu'elle soit lancée par CRON/etc) parce qu'il serait plus facile d'appeler une seule chose plutôt que deux ou plusieurs.

0voto

a.yastreb Points 911

Une table de 27k n'est pas très grande et MySQL devrait fonctionner correctement avec cela. Avez-vous tous les index nécessaires ? Avez-vous utilisé EXPLAIN sur vos requêtes lentes ? En ce qui concerne la question du déplacement des données d'une table à l'autre, créez un script php script qui sera exécuté par CRON et déplacera les lignes une par une. Quel est le problème ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X