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の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MongoDB スローログクエリ (プロファイル) の詳細な説明
  • サブクエリ最適化における MySQL 選択の実装
  • MySQLサブクエリの詳細な例
  • MySQL 単一テーブルクエリの例の詳細な説明
  • 数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案
  • MySQLクエリ速度を最適化する方法
  • MySQLで日付と時刻を照会する方法
  • MySQL データベースの高度なクエリとマルチテーブルクエリ
  • MySQLスローログクエリの詳細な説明

<<:  Ubuntu 20.04 デスクトップのインストールとルート権限の有効化および SSH インストールの詳細

>>:  Uniappがスライディングスコアリング効果を実現

推薦する

Vue3 ドラッグ可能な左パネルと右パネルの分割コンポーネントの実装

目次コンポーネントの分解左パネル右パネル入力パラメータの分解小道具スロット具体的な実装ドラッグする方...

Docker で MySQL を起動したときに SQL 文を自動的に実行する方法

Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...

innerHTML を理解する

<br />関連記事: innerHTML HTML DOM insertRow() メ...

Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション

opencv.zip をダウンロード依存関係を事前にインストールします。まずダウンロードソースを更新...

Mysqlの日付と時刻関数を扱う記事

目次序文1. 現在の時刻を取得する1.1 現在の日付と時刻を返す1.2 現在の日付を取得する1.3 ...

データベースSQL文の最適化

最適化する理由:実際のプロジェクトが開始され、データベースが一定期間稼働した後、初期のデータベース設...

一般的なフロントエンドJavaScriptメソッドのカプセル化

目次1. 値を入力し、そのデータ型を返す** 2. アレイ重複排除3. 文字列の重複排除4. ディー...

nginx高可用性クラスタの実装プロセス

この記事は主に、nginx 高可用性クラスタの実装プロセスを紹介します。この記事のサンプルコードは非...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...

CentOS6 アップグレード glibc 操作手順

目次背景glibc 2.14をコンパイルするソフトリンクを変更するやっと背景テスト環境には Cent...

JSは要素のドラッグとプレースホルダー機能を実装します

このブログ投稿は、ブロガーが数日前に取り組んだプロジェクトで遭遇した困難についてです。これを学んだ後...

Vue で動的に読み込まれたローカル画像を処理する方法

問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...

MySQL に接続されている IP アドレスを表示する方法の例

具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...

SpringBoot + Vue プロジェクトを Linux サーバーにデプロイするための詳細なチュートリアル

序文SpringBoot + Vueのフロントエンドとバックエンドを分離したプロジェクトをどのように...

2008 年の Web デザインにおける 10 の経験

<br />インターネットは絶えず変化しており、BusinessWeek.com は専門...