MySQLのパラメータについてお話しましょう

MySQLのパラメータについてお話しましょう

序文:

以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメータが何であるかをまだ理解していない人もいるかもしれません。この記事では、MySQL パラメータについて説明し、MySQL パラメータを管理および維持する方法を学びます。

1.MySQLパラメータの概念

ここで言及しているパラメータは、公式ドキュメントではシステム変数と呼ばれています。変数によって機能が異なります。 MySQL サーバーは、その構成を表す多くのシステム変数を保持しており、それらはすべてデフォルト値を持っています。通常、起動コマンドラインまたは構成ファイルで設定できます。

システム変数は、グローバル システム変数 (global) とセッション システム変数 (session) に分けられます。一部の変数はグローバル変数とセッション変数の両方であり、一部はグローバル変数のみです。グローバル変数はサーバーのグローバル操作に影響しますが、セッション変数は特定のクライアント接続関連の操作にのみ影響します。セッション変数が個別に設定されていない場合は、対応するグローバル変数から継承されます。

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';
+---------------+---------+
| 変数名 | 値 |
+---------------+---------+
| サーバー ID | 1003306 |
+---------------+---------+
セット内の 1 行 (0.00 秒)

mysql> 'log_bin%' のようなグローバル変数を表示します。
+---------------------------------+---------------------------------+
| 変数名 | 値 |
+---------------------------------+---------------------------------+
| log_bin | オン |
| log_bin_basename | /data/mysql/logs/binlog |
| log_bin_index | /data/mysql/logs/binlog.index |
| log_bin_trust_function_creators | オン |
| log_bin_use_v1_row_events | オフ |
+---------------------------------+---------------------------------+
セット内の行数は 5 です (0.00 秒)

mysql> @@server_id を選択します。
+-------------+
| @@サーバーID |
+-------------+
|1003306|
+-------------+
セット内の 1 行 (0.00 秒)

# パラメータを動的に変更する set global var_name = value;
セッションvar_name = valueを設定します。
var_name = 値を設定します。

@@global.var_name = 値を設定します。
@@session.var_name = 値を設定します。
@@var_name = 値を設定します。

# パラメータ変更例 mysql> set global sort_buffer_size = 2097152;
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

mysql> セッションの sort_buffer_size を 4194304 に設定します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

mysql> @@global.sort_buffer_size、@@session.sort_buffer_size を選択します。
+---------------------------+----------------------------+
| @@global.sort_buffer_size | @@session.sort_buffer_size |
+---------------------------+----------------------------+
| 2097152 | 4194304 |
+---------------------------+----------------------------+
セット内の 1 行 (0.00 秒)

パラメータが動的に変更されたら、それを構成ファイルに書き込むことをお勧めします。動的に変更されたパラメータは MySQL サービスの再起動後に無効になるため、設定ファイルに書き込まれた場合にのみ再起動後に有効になります。動的に変更できない一部のパラメータについては、構成ファイルを変更して再起動することによってのみ有効にすることができます。ここで言及されている設定ファイルは my.cnf ファイルであり、通常、Linux システムでは /etc ディレクトリに、Windows システムでは basedir ディレクトリにあります。my.ini という名前を付けることもできます。ほとんどのパラメータは [mysqld] で設定する必要があります。簡単な設定ファイルの例は次のとおりです。

vi /etc/my.cnf
# シンプルなテンプレートは次のとおりです。
[mysqld]
ユーザー = mysql 
データディレクトリ = /data/mysql/data  
ソケット = /data/mysql/tmp/mysql.sock
pid ファイル = /data/mysql/tmp/mysqld.pid 
スキップ名解決 = 1
最大接続数 = 2000
小文字のテーブル名 = 1
log_timestamps=システム
最大許容パケット = 32M
...

MySQL パラメータは通常、DBA または運用保守担当者によって管理されるため、一部の学生はこれらのパラメータに馴染みがない可能性があります。データベースを初期化するときに、サーバーの仕様に応じて対応するデータベース パラメータを設定することをお勧めします。機能が不明なパラメータについては、デフォルト値のままにしておくことをお勧めします。パラメータの詳細については、公式ドキュメントを参照してください。

https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html

要約:

この記事では、MySQL パラメータとクエリ変更方法に関する概念について詳しく説明します。皆さんが関連知識を習得できることを願っています。

上記は、MySQL のパラメータに関する詳細な内容です。MySQL パラメータの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Python 接続 MySQL メソッドと共通パラメータ
  • MySQL 8.0 のメモリ関連パラメータの概要
  • pyMySQL SQL ステートメントのパラメータ渡しの問題、単一パラメータまたは複数パラメータの説明
  • Python MySQLのパラメータ化の説明
  • SQL 文を実行するときの Python MySQLdb パラメータ渡し方法
  • Python MySQL の日付時刻の書式設定をパラメータ操作として
  • MySQLでのカスタムパラメータの使用に関する詳細な説明
  • MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明
  • Ubuntu の MySQL のパラメータ ファイル my.cnf の詳細な分析
  • MYSQL設定パラメータの最適化の詳細な説明
  • MySQL パフォーマンスの包括的な最適化方法リファレンス、CPU、ファイルシステムの選択から mysql.cnf パラメータの最適化まで
  • MySQL 5.6 での table_open_cache パラメータの最適化と適切な構成の詳細な説明

<<:  ネイティブjsはショッピングカートのロジックと機能を実装します

>>:  Linux userdel コマンドの使用法

推薦する

Jenkins統合Dockerプラグインの問題を解決するいくつかの方法

目次背景質問1エラー 2エラー 3エラー4要約する背景テスト環境では、docker プラグインを統合...

HTMLで細い線のテーブルを作成する簡単な例

この細線の表を作成する方法については、Baidu で検索すると、表に対して border="...

Vue コンポーネント値転送中のデータ損失の分析と解決

序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...

XHTML: フレーム構造タグ

フレーム構造タグ <frameset></frameset>フレームを使用す...

一般的な JavaScript メモリ エラーと解決策

目次1. タイマー監視2. イベント監視3.オブザーバー4. ウィンドウオブジェクト5. DOM参照...

ふるい抽選を実施するミニプログラム

この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

MySQL データベースの詳細な説明 (Ubuntu 14.0.4 LTS 64 ビットベース)

1. MySQLデータベースの構成と関連概念まず、MySQL はリレーショナル データベースである...

モバイル開発における 1px ラインの理解と解決策

1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

Mysql の mysql.user ユーザー テーブルの詳細な説明

MySQL は、異なるユーザーに異なる権限を割り当てることができるマルチユーザー管理データベースであ...

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...

Nginx バージョンのスムーズなアップグレードソリューションの詳細説明

目次背景: Nginx スムーズ アップグレード ソリューションフォールバック手順要約する背景:負荷...

Navicat がデータベース データ構造をインポートする際に発生するエラー datetime(0) の SQL レポートの問題を解決します。

エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...

MySQL データ定義言語 DDL の基本ステートメント

MySQL DDL ステートメントDDL、DMLとは何ですか。 DDL はデータ定義言語であり、CR...

MySQL スロークエリ関連パラメータの原理の分析

MySQL スロー クエリ (正式名称はスロー クエリ ログ) は、MySQL によって提供されるロ...