Mysql
 sql >> база данни >  >> RDS >> Mysql

Неправилен ключов файл за таблица '/tmp/#sql_3c51_0.MYI' опитайте да го поправите

Проблемът е причинен от липсата на дисково пространство в папката /tmp. Томът /tmp се използва при заявки, които изискват създаване на временни таблици. Тези временни таблици са във формат MyISAM, дори ако заявката използва само таблици с InnoDB.

Ето някои решения:

  • оптимизирайте заявката, така че да не създава временни таблици (пренапишете заявката, разделете я на множество заявки или добавете правилни индекси, анализирайте плана за изпълнение с pt-query-digest и EXPLAIN <query> ) Вижте това Статия в Percona за временни таблици .
  • оптимизирайте MySQL, така че да не създава временни таблици (sort_buffer_size, join_buffer_size). Вижте:https://dba.stackexchange.com/questions/53201/mysql-creates-temporary-tables-on-disk-how-do-i-stop-it
  • направете таблиците по-малки. Ако е възможно, изтрийте ненужните редове
  • използвайте SELECT table1.col1, table2,col1 ... вместо select * да използвате само колоните, които са ви необходими в заявката, да генерирате по-малки временни таблици
  • използвайте типове данни, които заемат по-малко място
  • добавете повече дисково пространство към тома, където се намира папката /tmp
  • променете потребителя на временната папка от mysql, като зададете TMPDIR променлива на средата преди стартиране на mysqld. Точка TMPDIR към папка на дисков том, който има повече свободно място. Можете също да използвате tmpdir опция в /etc/my.cnf или --tmpdir в командния ред на услугата mysqld. Вижте:B.5.3.5 Къде MySQL съхранява временни файлове


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изчислим общата сума в MySQL

  2. Брой редове с PDO

  3. Можете ли да разделите/раздуете поле в MySQL заявка?

  4. Производителност на Mysql в таблица от 6 милиона реда

  5. Python 'float64' не може да бъде преобразуван в тип MySQL, но при ръчна заявка това не е проблем