この記事では、MySQL 8.0 の新機能であるグローバル パラメーターの永続性について説明します。
MySQL 8.0.11
の最初のバージョンが 2018 年にリリースされて以来、MySQL バージョンは更新され、8.0.26 に反復されてきました。
、安定バージョン 5.7 と比較して、8.0 のパフォーマンスの向上は疑いの余地がありません。
MySQL 8.0 バージョンを使用し始める企業が増えているため、DBA にとっては課題であると同時にチャンスでもあります。
この記事では主に、MySQL 8.0 バージョンの新機能 グローバル パラメーターの永続性 について説明します。 [関連する推奨事項: mysql ビデオ チュートリアル ]
MySQL 8.0 バージョンでは、By を追加することで、グローバル パラメーターと永続性のオンライン変更をサポートしています。 PERSIST
キーワードを使用すると、変更されたパラメータを新しい設定ファイル (mysqld-auto.cnf) に保存できます。MySQL を再起動すると、この設定ファイルから最新の設定パラメータを取得できます。
SET PERSIST#対応するワークログ [WL#8688]: https://dev.mysql.com/worklog/task/?id=8688
# #この機能を有効にし、特定の構文
を使用して、動的に変更できるグローバル変数を設定します。
SET PERSIST
ステートメントは、メモリ内の変数の値を変更し、変更された値をメモリに書き込むことができます。ディレクトリ内のデータ mysqld-auto.cnf。
SET PERSIST_ONLY
ステートメントはメモリ内の変数の値を変更せず、書き込みのみを行います。データディレクトリの mysqld-auto.cnf に値を変更しました。
max_connections パラメータを例として挙げます。 mysql> select * from performance_schema.persisted_variables;
Empty set (0.00 sec)
mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| max_connections | 151 |
| mysqlx_max_connections | 100 |
+------------------------+-------+
2 rows in set (0.00 sec)
mysql> set persist max_connections=300;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 300 |
+-----------------+----------------+
1 row in set (0.00 sec)
形式を含む mysqld を生成します。次のようにフォーマットされたデータ ディレクトリ -auto.cnf ファイル。my.cnf と mysqld-auto.cnf が同時に存在する場合、後者の方が優先されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">{
"Version": 1,
"mysql_server": {
"max_connections": {
"Value": "300",
"Metadata": {
"Timestamp": 1632575065787609,
"User": "root",
"Host": "localhost"
}
}
}
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
SET PERSIST を使用して設定値を変更し、変更がない場合でも、mysqld-auto.cnf ファイルにも書き込まれます。 。ただし、DEFAULT
値に設定することで、初期のデフォルト値に戻すことができます。
パラメータを初期のデフォルト値に復元したい場合は、次のコマンドを実行するだけです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">mysql> set persist max_connections=DEFAULT;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 151 |
+-----------------+----------------+
1 row in set (0.00 sec)</pre><div class="contentsignin">ログイン後にコピー</div></div>
すべてのグローバル永続パラメータを削除したい場合は、実行する必要があるのは:
mysql> RESET PERSIST; Query OK, 0 rows affected (0.00 sec) mysql> select * from performance_schema.persisted_variables; Empty set (0.00 sec)
もちろん、mysqld-auto.cnf ファイルを削除した後に MySQL を再起動することもできます。
最後に書くCommit f2bc0f89b7f94cc8fe963d08157413a01d14d994
メインエントリfunction (8.0.0):接口函数大多定义在sql/persisted_variable.cc文件中:
启动时载入mysqld-auto.cnf的内容: Persisted_variables_cache::load_persist_file(); 通过json解析合法性,并存入内存
将文件中读取的配置进行设置: Persisted_variables_cache::set_persist_options
运行SET PERSIST命令时,调用Persisted_variables_cache::set_variable 更新内存中存储的值
写入mysqld-auto.cnf文件中: Persisted_variables_cache::flush_to_file
以上がMySQL 8.0 におけるグローバル パラメータの永続性についての詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。