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がスライディングスコアリング効果を実現

推薦する

CSSは親要素の下の最初の子要素を選択します(:first-child)

序文最近、プロジェクトで :first-child を使用したのですが、すぐに思いつきました。これは...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...

Web デザインのための 5 つのシンプルな XHTML Web フォーム

Web デザイン 5 におけるシンプルな XHTML Web フォーム。 テクニック 1: ラベル ...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

光るテキストとちょっとしたJS特殊効果を実現するCSS

実装のアイデア: CSSでtext-shadowを使用してテキストの光る効果を実現します効果画像: ...

html ページ!--[IE の場合]...![endif]--使用方法の詳細な紹介

コードをコピーコードは次のとおりです。 <!--[IEの場合]><script t...

システム CD をマウントして yum ウェアハウスを構築する VMware 15.5 バージョンのグラフィック チュートリアル

1. CentOS 7 仮想マシンを開きます。 2. 仮想マシンにログインし、リストにないユーザー名...

Node.js管理ツールnvmの詳細なインストール手順

いいえnvmはnodejsの複数のバージョンを管理する役割を担っています。インストール: https...

ホバードロップダウンメニューを実装するためのネイティブJS

JS はホバー ドロップダウン メニューを実装します。これは、フロントエンドの面接で遭遇するシナリ...

MySQLは数百万のシミュレーションデータ操作コードを自動的に挿入します

私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...

HTMLタグIDは変数にできる

<table id=" <%=var1%>">、var1...

Linux に MySQL をインストールする方法 (yum とソース コードのコンパイル)

Linux に MySQL をインストールするには、yum インストールとソース コード コンパイ...

シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)

この記事では、シンプルなカルーセル効果を実現するためのJavaScriptの具体的なコードを参考まで...

mysql 3つのテーブルを接続してビューを作成する

3 つのテーブルが接続されています。テーブル A のフィールド a はテーブル B のフィールド b...