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

mysql MEMORY ENGINEにさらに多くのデータを保存させる方法は?

    テーブルの作成と読み込みの方法を調整する必要があります

    CREATE TABLE sns_memory SELECT * FROM sns WHERE 1=2;
    ALTER TABLE sns_memory ENGINE=MEMORY;
    INSERT INTO sns_memory SELECT * FROM sns;
    DROP TABLE sns;
    ALTER TABLE sns_memory RENAME sns;
    

    これにより、<によって課せられた制限を回避できます。 strong> tmp_table_size および max_heap_table_size

    同じように、2つのことを行う必要があります:

    これを/etc/my.cnf

    に追加します
    [mysqld]
    tmp_table_size=2G
    max_heap_table_size=2G
    

    これはmysqlの再起動をカバーします。再起動せずに今すぐmysqldにこれらの値を設定するには、次のコマンドを実行します:

    SET GLOBAL tmp_table_size = 1024 * 1024 * 1024 * 2;
    SET GLOBAL max_heap_table_size = 1024 * 1024 * 1024 * 2;
    

    上記の変数を

    でチェックしている場合
    SELECT @@max_heap_table_size;
    

    または

    SHOW VARIABLES LIKE 'max_heap_table_size';
    

    SET GLOBAL...の後で変更されていないように見える場合があります ステートメント。これは、設定がサーバーへの新しい接続にのみ適用されるためです。新しい接続を確立すると、値が更新されるか、セッション内で次のコマンドを実行して変更できます。

    SET tmp_table_size = 1024 * 1024 * 1024 * 2;
    SET max_heap_table_size = 1024 * 1024 * 1024 * 2;
    


    1. テーブル内の数値位置で列を選択するにはどうすればよいですか?

    2. ベーステーブルが別のデータベースにある場合、ベーステーブルではなくビューでSelectを付与します

    3. HAProxyを使用したPostgreSQLのパフォーマンスの向上

    4. Sequelize —DATEフィールドにUNIXタイムスタンプを使用します