MySQL 8.0 におけるグローバル パラメータの永続性についての詳細な説明

青灯夜游
リリース: 2021-10-15 18:33:06
転載
1869 人が閲覧しました

この記事では、MySQL 8.0 の新機能であるグローバル パラメーターの永続性について説明します。

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 を再起動すると、この設定ファイルから最新の設定パラメータを取得できます。

#対応するワークログ [WL#8688]: https://dev.mysql.com/worklog/task/?id=8688

# #この機能を有効にし、特定の構文
SET PERSIST

を使用して、動的に変更できるグローバル変数を設定します。

    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)
ログイン後にコピー
システムは、

json

形式を含む mysqld を生成します。次のようにフォーマットされたデータ ディレクトリ -auto.cnf ファイル。my.cnf と mysqld-auto.cnf が同時に存在する場合、後者の方が優先されます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">{ &quot;Version&quot;: 1, &quot;mysql_server&quot;: { &quot;max_connections&quot;: { &quot;Value&quot;: &quot;300&quot;, &quot;Metadata&quot;: { &quot;Timestamp&quot;: 1632575065787609, &quot;User&quot;: &quot;root&quot;, &quot;Host&quot;: &quot;localhost&quot; } } } }</pre><div class="contentsignin">ログイン後にコピー</div></div>

注:

SET PERSIST を使用して設定値を変更し、変更がない場合でも、mysqld-auto.cnf ファイルにも書き込まれます。 。ただし、DEFAULT 値に設定することで、初期のデフォルト値に戻すことができます。

max_connections

パラメータを初期のデフォルト値に復元したい場合は、次のコマンドを実行するだけです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">mysql&gt; set persist max_connections=DEFAULT; Query OK, 0 rows affected (0.00 sec) mysql&gt; 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!