MySQLのパラメータについて話します。


前言:
前のいくつかの文章の中で、よくあるパラメータの役割を紹介してくれます。MySQLパラメータはまだ分からない仲間もいるかもしれません。この記事ではMySQLパラメータについて話します。MySQLパラメータの管理方法を学びます。
1.MySQLパラメータ概念
私たちが言っているパラメータは公式文書ではシステム変数と呼ばれていますが、異なる変数は違った役割をしています。MySQLサーバーはその構成を示す多くのシステム変数を維持しています。すべての変数は標準値です。通常は、スタートコマンドラインやプロファイルで設定できます。
システム変数はグローバルシステム変数とセッションシステム変数に分類されます。一部の変数にはグローバル変数とセッション変数があります。一部の変数にはグローバル変数しかありません。グローバル変数はサーバのグローバル操作に影響し、セッション変数は特定のクライアント接続に関連する動作にのみ影響を与えます。セッション変数が個別に設定されていない場合は、対応するグローバル変数から継承されます。
MySQLサービスが開始されると、プロファイルまたはコマンドラインで指定されたオプションに従ってグローバル変数に値が割り当てられ、指定されていない場合はデフォルトで処理されます。サービス開始後、サーバーを接続してSET GLOBAL var_を実行します。name文は、グローバル変数の一部の値を動的に変更することができます。グローバル変数を変更するには、SUPER権限が必要です。MySQLはまた、各クライアント接続維持セッション変数のために、接続時に、対応するグローバル変数の現在値を用いてクライアントセッション変数を初期化する。クライアントはSET SESSION var_を通過することができます。name文はセッション変数を動的に変更します。セッション変数の設定には特別な権限は必要ありませんが、セッション変数は現在の接続にのみ使用されます。
2.パラメータ照会と変更例
ここでも説明したいのですが、すべてのパラメータが動的に変更できるわけではなく、一部のパラメータは設定ファイルに書き込み、データベースを再起動してから有効になります。以下、MySQLパラメータの照会と修正を示します。

#     
show global variables like 'var_name'; //          ,   %   
show session variables like 'var_name'; //          
show  variables like 'var_name'; //          ,          ,         。

#    select        
select @@global.var_name; //      
select @@session.var_name; //      
select @@var_name; //        

#     
mysql> show global variables like 'server_id';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| server_id | 1003306 |
+---------------+---------+
1 row in set (0.00 sec)

mysql> show global variables like 'log_bin%';
+---------------------------------+-------------------------------+
| Variable_name   | Value    |
+---------------------------------+-------------------------------+
| log_bin    | ON    |
| log_bin_basename  | /data/mysql/logs/binlog |
| log_bin_index   | /data/mysql/logs/binlog.index |
| log_bin_trust_function_creators | ON    |
| log_bin_use_v1_row_events | OFF    |
+---------------------------------+-------------------------------+
5 rows in set (0.00 sec)

mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
| 1003306 |
+-------------+
1 row in set (0.00 sec)

#       
set global var_name = value;
set session var_name = value;
set var_name = value;

set @@global.var_name = value;
set @@session.var_name = value;
set @@var_name = value;

#       
mysql> set global sort_buffer_size = 2097152;
Query OK, 0 rows affected (0.00 sec)

mysql> set session sort_buffer_size = 4194304;
Query OK, 0 rows affected (0.00 sec)

mysql> select @@global.sort_buffer_size,@@session.sort_buffer_size;
+---------------------------+----------------------------+
| @@global.sort_buffer_size | @@session.sort_buffer_size |
+---------------------------+----------------------------+
|   2097152 |   4194304 |
+---------------------------+----------------------------+
1 row in set (0.00 sec)
パラメータを動的に変更した後、プロファイルに書き込むことを推奨します。動的修正のパラメータはMySQLサービスの再起動後に無効になりますので、設定ファイルを書き込むだけで再起動後も有効です。動的に変更できないパラメータについては、設定ファイルを変更してから再起動するしかありません。ここで言っている配置ファイルはmy.cnfファイルです。Linuxシステムは主に/etcディレクトリの下にあります。Windowsシステムは主にbasedirディレクトリの下にあります。名前はmy.iniといいます。ほとんどのパラメータは「mysqld」の下に配置する必要があります。簡単なプロファイルの例は以下の通りです。

vi /etc/my.cnf
#       :
[mysqld]
user = mysql 
datadir = /data/mysql/data  
socket = /data/mysql/tmp/mysql.sock
pid-file = /data/mysql/tmp/mysqld.pid 
skip_name_resolve = 1
max_connections = 2000
lower_case_table_names = 1
log_timestamps=SYSTEM
max_allowed_packet = 32M
...
MySQLパラメータは一般的にDBAや运维によってメンテナンスされていますが、これらのパラメータはまだ知らない学生もいます。データベース初期化の際、サーバの仕様に応じたデータベースパラメータを設定することを推奨します。効果がよく分からないパラメータは、デフォルトの値を維持することを推奨します。詳細なパラメータに関する内容は、公式文書を参照できます。
https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html
まとめ:
この文章はMySQLパラメータに関する概念とクエリの変更方法を詳しく述べています。
以上がMySQLのパラメータの詳細です。MySQLパラメータに関する資料は他の関連記事に注目してください。