sql >> データベース >  >> RDS >> Mysql

テーブルはCREATETEMPORARYTABLEを使用してメモリまたはディスクに作成されていますか?

    指定するエンジンによって異なります。デフォルトでは、テーブルデータはディスクに保存されます。 MEMORYエンジンを指定すると、データはメモリにのみ保存されます。

    一時テーブルの作成時に、ファイルシステムで作成されたファイルを実際に見つけることができるはずです。次のコマンドを実行した後:

    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. Dockerphp_network_getaddressesエラー

    2. WHERE句を使用するとMySQLのLEFTJOINがNULLレコードを返すのはなぜですか?

    3. web.configasp.netのOracleデータベース接続

    4. MYSQL現在までの営業日を追加