sql >> Databasteknik >  >> RDS >> Mysql

Fel nyckelfil för tabellen '/tmp/#sql_18b4_0.MYI' försök reparera den

Åh shit, detta var ett dumt misstag från min utvecklare, efter 30 minuters brainstorming för att designa den här frågan på ett annat sätt fick jag det här problemet att utvecklaren använde join på fel sätt, på grund av detta kunde mysql inte korrekt ansluta tabelldata och förbrukar allt utrymme i /tmp-katalogen och skickar detta fel. Korrekt fråga är här-

SELECT `PsMasterSubject`.`id`, `PsMasterSubject`.`name`, `PsProgram`.`name`, `PsStreamLevel`.`id` 
FROM `misdb`.`ps_master_subjects` AS `PsMasterSubject` 
LEFT JOIN `misdb`.`ps_programs` AS `PsProgram` ON (`PsMasterSubject`.`ps_program_id` = `PsProgram`.`id`) 
LEFT JOIN `misdb`.`ps_stream_levels` AS `PsStreamLevel` ON (`PsStreamLevel`.`id` = `PsProgram`.`ps_stream_level_id`) 
LEFT JOIN `misdb`.`ps_program_levels` AS `PsProgramLevel` ON (`PsProgramLevel`.`id` = `PsStreamLevel`.`ps_program_level_id`) 
WHERE 1 = 1 
ORDER BY `PsMasterSubject`.`id` DESC LIMIT 10;

Nu är frågan här om att detta är en mysql-bugg eftersom mysql borde ge fel syntaxfel men här försöker mysql skapa en tillfällig tabell för temporära data.

Jag är mycket tacksam om någon kan klargöra detta för mig.




  1. Undvikande enstaka citat i SQL Server

  2. Håll koll på databasprestanda med Uptime Infrastructure Monitor

  3. Implementera olika vyer på användarnivå i php

  4. Välj flera summor med MySQL-fråga och visa dem i separata kolumner