Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Arquivo de chave incorreto para a tabela '/tmp/#sql_18b4_0.MYI' tente repará-lo


Oh merda, isso foi um erro bobo do meu desenvolvedor, depois de 30 minutos de brainstorming para projetar essa consulta de maneira diferente, recebi esse problema de que o desenvolvedor estava usando o join de maneira errada, devido a isso o mysql não conseguiu juntar os dados das tabelas e consumindo todo o espaço no diretório /tmp e lançando este erro. A consulta correta está aqui-
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;

Agora, a questão é aqui que é um bug do mysql, pois o mysql deve lançar um erro de sintaxe errado, mas aqui o mysql está tentando criar uma tabela temporária para dados temporários.

Ficarei muito grato se alguém puder esclarecer isso para mim.