/ / Comment «écraser» une table sur un serveur de produit? - php, mysql, sql

Comment une table peut-elle être "plantée" sur un serveur de produit? - php, mysql, sql

aujourd'hui, mon site était en panne toute la journée, j'ai vérifié les journaux (je journalise manuellement toutes les mauvaises requêtes SQL) et j'ai eu peur:

SELECT MIN(DATEAT),MAX(DATEAT) FROM table = Table "./table" est marqué comme planté et la dernière réparation (automatique?) a échoué

cela ne s'est jamais produit en 3 ans. J'ai réparé la table de phpMyAdmin, le résultat était:

db.table  repair  warning  Number of rows changed from 0 to 3279
db.table  repair  status  OK

ça a l'air bien maintenant mais je ne suis pas détendu - je pourrais perdre des données? Et comment prévenir pour que cela ne se reproduise plus à l'avenir? Cette table est une table myIsam habituelle.

Réponses:

2 pour la réponse № 1

MyISAM est connu pour corrompre les données lors d'un crash. C'est une bonne raison de convertir toutes vos tables importantes en InnoDB. Voir aussi MyISAM contre InnoDB.

Les seules tables MyISAM que vous conservez doivent être cellesque vous pouvez recréer facilement à partir de données stockées en toute sécurité dans les tables InnoDB (certaines personnes le font pour utiliser les index de texte intégral de MyISAM, mais conservent les données canoniques dans InnoDB).

Pour des outils pour comparer les données, je recommande pt-table-sync --print.

Voir Comparer deux bases de données MySQL pour d'autres options.