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

Създадени ли са таблици със CREATE TEMPORARY TABLE в памет или на диск?

Зависи какъв двигател посочиш. По подразбиране данните от таблицата ще се съхраняват на диск. Ако посочите механизма ПАМЕТ, данните ще се съхраняват само в паметта.

Трябва да е възможно действително да се намерят файловете, които са създадени във файловата система, когато се създават временните таблици. След изпълнение на следните команди:

CREATE TABLE test.table_myisam (x int) ENGINE=MyISAM;
CREATE TABLE test.table_memory (x int) ENGINE=MEMORY;
CREATE TEMPORARY TABLE test.temp_table_myisam (x int) ENGINE=MyISAM;
CREATE TEMPORARY TABLE test.temp_table_memory (x int) ENGINE=MEMORY;

След това проверих директорията:C:\ProgramData\MySQL\MySQL Server 5.5\data\test (под Windows) и наличните файлове бяха:

table_innodb.frm   # Table definition.
table_innodb.MYD   # MyISAM table data file.
table_innodb.MYI   # MyISAM table index file.

table_memory.frm   # No MYD or MYI file for the MEMORY engine.

Временните таблици се съхраняват в C:\Windows\Temp и имат необичайни имена, но вътрешно данните се съхраняват по същия начин.

#sql9a0_7_d.frm    # This is the MyISAM temporary table.
#sql9a0_7_d.MYD    # MyISAM data file for temporary table.
#sql9a0_7_d.MYI    # MyISAM index file for temporary table.

#sql9a0_7_c.frm    # This is the MEMORY engine file. No MYD or MYI.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Присвояване на една и съща стойност на параметъра няколко пъти в изпълнение на pdo

  2. Грешка Rails-MySQL - неинициализирана константа MysqlCompat::MysqlRes

  3. Символи с ударение в таблицата на mySQL

  4. Съхраненият тригер на mysql вече се използва от оператор, който е извикал съхранения тригер

  5. Преброяване на всички публикации, принадлежащи към категория И нейните подкатегории