sql >> Databáze >  >> RDS >> Mysql

Jsou tabulky vytvořeny pomocí CREATE TEMPORARY TABLE v paměti nebo na disku?

Záleží na tom, jaký motor specifikujete. Ve výchozím nastavení budou data tabulky uložena na disk. Pokud určíte modul MEMORY, budou data uložena pouze v paměti.

Při vytváření dočasných tabulek by mělo být možné skutečně najít soubory, které jsou vytvořeny v souborovém systému. Po spuštění následujících příkazů:

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;

Poté jsem zkontroloval adresář:C:\ProgramData\MySQL\MySQL Server 5.5\data\test (ve Windows) a přítomné soubory byly:

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.

Dočasné tabulky jsou uloženy v C:\Windows\Temp a mají neobvyklé názvy, ale interně jsou data uložena stejným způsobem.

#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. PHP kód pro vložení hodnoty zaškrtávacího políčka do konkrétního sloupce na mysql s výběrem formuláře

  2. Python Pandas - Použití to_sql k zápisu velkých datových rámců v blocích

  3. PHP detekuje pokus o vložení SQL

  4. Jak mohu vybrat náhodné řádky v MySQL?