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

Местоположение на MySQL Temp Table

MySQL използва трик, който е част от POSIX системите завинаги. Той отваря временния файл и незабавно го прекратява. Поради това не се вижда в нито един списък с директории. Но POSIX системи като UNIX и Linux всъщност не трябва да премахват несвързан файл, докато процесът има манипулатор на отворен файл. Така че след като заявката с помощта на временната таблица приключи, тя ще затвори манипулатора на файла и след това ОС автоматично ще премахне файла и ще освободи хранилището, което е използвало.

Това обикновено е по-добре, отколкото да изисквате сървърния код, не забравяйте да премахнете tempfile, когато приключите с него. Това също така отчита като прекратяване на нишката или срив на mysqld. Поне няма да остави остарели временни файлове да засипват вашата файлова система.

Можете да видите размера на несвързаните файлове с lsof -s . Ще ви оставя да потърсите примери как да използвате тази команда (Google е ваш приятел тук).

Малко е възможно временен файл да използва вашите 167 GB свободно пространство.

Или може да се окаже, че временният файл използва само 8 GB, но може да имате 20 нишки, извършващи една и съща заявка по едно и също време. Виждал съм това да се случва веднъж.

Но вероятно е по-вероятно да имате стойност tmp_table_size което ограничава размера на временната таблица.

Ако достигнете лимита, можете да повишите тази опция за конфигурация или като променлива на сесия, когато имате нужда от нея, или глобално в my.cnf .

Но първо бих се опитал да оптимизирам заявката. Защо е необходимо да създава толкова големи таблици за време? Може ли да бъде оптимизирана за разглеждане на по-малко редове или може би да се избегне създаването на временна таблица изобщо?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySql и геолокация

  2. Скриптове през ssh чрез замазка на windows

  3. Как да направите резервно копие на базата данни на MySQL с помощта на MySQL Workbench?

  4. Какво точно прави group by?

  5. Как да съхранявате списък с дни от седмицата в MySQL?