J'ai un problème avec un InnoDB (la table était initialement MyISAM, mais il a été converti en InndoB il y a quelque temps); Je suis en train d'exécuter cette requête:Fichier de clé incorrect avec MySQL
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE
feeds.blog_language=1
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Je reçois cette erreur:
Query : SELECT posts.id,posts.post_title FROM rss_posts AS posts INNER JOIN vw_rss_feeds AS feeds ON posts.blog_id=feeds.id WHER...
Error Code : 126
Incorrect key file for table '/tmp/#sql_7375_0.MYI'; try to repair it
Je ne peux pas exécuter une réparation sur les tables concernées; Cependant, j'ai couru un CHECK sur les deux tables & ils semblent bien. Je l'ai aussi fait un OPTIMIZE sur les deux tables & AUSSI rebâtit les tableaux ci-dessous en faisant le ..
INSERT INTO new_table SELECT * FROM old_table;
Je puis rebaptisés la nouvelle table à l'ancien nom de table ..... mais je suis toujours avoir ce problème .
Pour essayer & figure ce tableau était à l'origine, je supprimé le code dans la requête faisant référence à la « rss_feeds » tableau .... maintenant la requête ressemble à ceci ..
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Cela a fonctionné. Donc, le problème est quelque chose avec la table rss_feeds.
Alors je pensais que je voudrais convertir le tableau en MyISAM & exécuter une réparation & puis reconvertir InnoDB ..... cela a fonctionné temporairement, il était de retour à la normale .... il a cassé à nouveau .. ... réparé encore, cassé encore .... maintenant la réparation ne semble pas fonctionner du tout.
Maintenant, je sais, je sais ...... J'ai déjà cherché ce problème sur Google ...... J'ai remarqué que la MAJORITÉ du temps le problème est là nous pas assez d'espace dans le MySQL répertoire temporaire .... mais j'ai déjà l'hôte pour changer le répertoire temp à quelque chose avec beaucoup plus d'espace & le problème persiste.
Je pense que l'HÔTE est à blâmer & il est toujours un problème avec le répertoire temp; Pourquoi? Parce que, après que je l'ai fait fonctionner à nouveau, j'ai commencé à ajouter des données à la table rss_posts à nouveau & d'où le JOIN serait plus grand & MySQL serait à nouveau manquer d'espace .... que pensez-vous?
Merci - il y a certainement assez d'espace disque disponible; essentiellement l'hôte a dit ceci .. « La partition '/ var/tmp' utilise le même espace que '/', et ses informations d'utilisation est actuellement comme suit: /dev/sda3 442 g 130G 289g 32%/ Donc, vous ne devriez pas voir de problèmes avec l'espace. " Bien que je me demande si peut-être le/var/tmp/dir est restreint lui-même? Si c'est même possible. Donc, cette requête que vous avez là-bas - qui reçoit essentiellement les 10 derniers messages des 30 derniers jours? – Brett
Correct. Vous pouvez paramétrer le "30" pour le rendre un peu plus large. Mais quel que soit l'espace disque disponible si vous êtes constamment en train de trier l'ensemble des deux tables pour 10 lignes, vous allez rencontrer des problèmes de mise à l'échelle et de performances. –
Oui ... vous faites un bon point. Merci beaucoup! – Brett