はじめに
こんにちは、シルです。
SQLの学習にあたり、学んだことメモしておきます。
学習にお役立てください。
参考までに…
SQLコマンド集:基本から応用
前回までの内容です
SQL#1 環境準備と基本操作
SQL#2 テーブルとデータベースの管理
SQL#3 ユーザー管理と権限の設定
学習の概要
このパートでは、サーバーステータスやインデックスの管理方法を学び、データベースのパフォーマンスを最適化するための手法を紹介します。
サーバーの稼働状況をモニタリングし、実行中のクエリや設定の確認、インデックスの効果的な管理方法を学習します。
含まれる操作
SQL操作は以下の通り
1. SHOW STATUS – サーバーステータスを表示
2. SHOW VARIABLES – サーバー設定の確認
3. SHOW PROCESSLIST – 実行中のクエリを表示
4. SHOW INDEX – テーブルのインデックスを表示
5. SHOW ENGINE STATUS – ストレージエンジンのステータスを表示
課題
- インデックスの状態を確認し、最適なクエリのパフォーマンスを得るためにインデックスを最適化する方法を考える。
- サーバーステータスを確認し、現在の接続数や実行中のクエリの状態をモニタリングする。
実践
1. SHOW STATUS – サーバーステータスを表示
このコマンドで、MySQLサーバーのステータス情報を表示します。
SHOW STATUS;
Threads_connected(現在の接続数)やQueries(実行されたクエリ数)など、サーバーの運用状態を示す多数の項目が確認できます。

2. SHOW VARIABLES – サーバー設定の確認
MySQLサーバーの設定変数を表示するコマンドです。
これにより、パフォーマンスや動作に影響を与える設定を確認できます。
SHOW VARIABLES;

特定の設定を確認したい場合は、以下のようにLIKE句を使用します。
SHOW VARIABLES LIKE 'max_connections';

3. SHOW PROCESSLIST – 実行中のクエリを表示
現在実行中のクエリや接続の詳細を確認するためのコマンドです。
SHOW PROCESSLIST;
デッドロックの発生や長時間実行中のクエリを特定するために使用します。

4. SHOW INDEX – テーブルのインデックスを表示
インデックスを適切に管理することで、クエリのパフォーマンスを大幅に向上させることができます。
このコマンドで、特定のテーブルに設定されているインデックスを確認します。
SHOW INDEX FROM Employees;
インデックスの種類や、ユニークインデックスの有無などの情報が確認できます。

5. SHOW ENGINE STATUS – ストレージエンジンのステータスを表示
MySQLのストレージエンジン(例:InnoDB)の状態を確認するためのコマンドです。
SHOW ENGINE INNODB STATUS;
トランザクションの状況やロックの発生状況を確認できるため、パフォーマンスチューニングに役立ちます。

テストデータの挿入
インデックスの確認と最適化
インデックスが適切に設定されているか確認し、必要に応じてインデックスを追加します。
インデックスの作成
CREATE INDEX Position ON Employees(EmployeeID);

インデックスの削除
DROP INDEX Position ON Employees;

課題
- 課題1
Employees テーブルに対してインデックスを追加し、その効果を確認してください。
- 課題2
実行中のクエリをSHOW PROCESSLIST で確認し、サーバーの負荷が高いクエリを特定してください。
まとめ
この記事では、サーバーステータスの確認とインデックス管理の基本を学びました。
これらの操作を適切に行うことで、サーバーの稼働状況を把握し、パフォーマンスを最適化することが可能になります。
次回は、データベース全体の構造確認やサイズ管理について学び、より高度な管理スキルを身につけます。


コメント