私はすべてのテーブルにMEMORYストレージエンジンを使用したいので、MariaDBを初めて使用することに興味があります。 mariadb.comのメモリストレージエンジン を読んだところ、作成時にストレージエンジンを指定する必要があったようです。
私が欲しいのは、インスタンス上のすべてのテーブルに対してMEMORYストレージエンジンを有効にする単一のコマンドを実行することです。とにかくそれを達成することはできますか?
あなたが対処しなければならない2つの状況があります
これをmy.cnf
に追加する必要があります
[mysqld]
default-storage-engine=MEMORY
次に、mysql(MariaDB)を再起動します。
警告:これは既存のテーブルをMEMORYテーブルに変換しません。
これらの既存のテーブルに対して何ができるでしょうか?
すべてのテーブルをMEMORYテーブルに変換するスクリプトは次のとおりです。
SQLSCRIPT=/root/Convert_To_MEMORY.sql
echo "SET SQL_LOG_BIN = 0;" >
MYSQL_CONN="-u... -p..."
SQL="SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=MEMORY;')"
SQL="${SQL} ConversionSQL FROM information_schema.tables WHERE engine='InnoDB'"
SQL="${SQL} AND table_schema NOT IN ('information_schema','mysql','performance_schema')"
mysql ${MYSQL_CONN} -AN -e"${SQL}" > ${SQLSCRIPT}
less ${SQLSCRIPT}
SQLスクリプトの内容に満足している場合は、MariaDBにログインして実行します。
mysql> source /root/Convert_To_MEMORY.sql
MEMORYテーブルとしてすべてを使用するためにすべき2つの主要なことを説明しましたが、MEMORYテーブルを使用することの良い点、悪い点、および醜い点に関する私の古い投稿を読む必要があります。
May 22, 2011
: MEMORYストレージエンジンを使用していますが、MySQLはまだディスクに書き込みます...なぜですか?Sep 26, 2011
: MySQLインメモリストレージエンジンで512 GBのRAMを使用することは可能ですか?Jan 17, 2012
: Mysqlメモリテーブルが多くのロックを取得Jan 21, 2012
: メモリエンジンに対してInnoDBエンジンは高速化されていますか?Jan 30, 2012
: MEMORYテーブルはどのくらいのメモリを使用しますか?私はこれをアーカイブする2つの方法を見つけました。最初のものはターミナルを使用しています。 ( MySQLのデフォルトストレージエンジンの変更 に基づく)
を使用してmy.cnfを編集します
vi /etc/my.cnf
ファイルの最後にこれらの2行を追加します。
[mysqld]
default-storage-engine=MEMORY
MariaDBを再起動します
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start
これを行う2番目の方法は、 HeidiSQL であるGUIツールを使用することです。