Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy tabele są tworzone za pomocą polecenia CREATE TEMPORARY TABLE w pamięci czy na dysku?

To zależy od tego, jaki silnik wybierzesz. Domyślnie dane tabeli będą przechowywane na dysku. Jeśli określisz mechanizm MEMORY, dane będą przechowywane tylko w pamięci.

Powinno być możliwe znalezienie plików utworzonych w systemie plików podczas tworzenia tabel tymczasowych. Po uruchomieniu następujących poleceń:

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;

Następnie sprawdziłem katalog:C:\ProgramData\MySQL\MySQL Server 5.5\data\test (w systemie Windows) i obecne pliki to:

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.

Tabele tymczasowe są przechowywane w C:\Windows\Temp i mają nietypowe nazwy, ale wewnętrznie dane są przechowywane w ten sam sposób.

#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. Laravel - Nieprawidłowy numer parametru:parametr nie został zdefiniowany

  2. Jak obliczyć rozmiar indeksów w MySQL?

  3. Najlepszy sposób na przechowywanie relacji wiele-do-wielu w MySQL?

  4. MySQL - czy mogę ograniczyć maksymalny czas wykonania zapytania?

  5. MySQL pomiędzy klauzulą ​​nie włącznie?