概要
このドキュメントでは、MySQLをHomebrewでセットアップし、SQL性能をローカルで評価する環境を構築する手順を示します。
目的は「データベース性能」ではなく、SQLクエリの最適化・評価にあります。
1 環境構築
■ 実行マシン
MacBook M4pro
CPU 12Core
GPU 16Core
メモリ 24G
■ MySQL インストール(Homebrew)
brew install mysql
※ すでにインストール済みの場合はスキップ可。
2 MySQL サーバ起動と接続
■ 起動確認
brew info mysql
上記の出力に次のような行があれば、以下のどちらかで起動できます:
-
常駐型サービスとして起動:
brew services start mysql -
一時起動(サービス登録しない):
mysql.server start
成功時の例:
Starting MySQL
. SUCCESS!
■ 起動状態の確認
ps aux | grep mysqld
MySQLサーバプロセス (mysqld) が動いていればOK。
■ 接続確認
mysql -u root
もし以下のエラーが出た場合:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
→ ソケットパスを指定して接続します:
mysql -u root --socket=/opt/homebrew/var/mysql/mysql.sock
※Intel Macの場合は
/usr/local/var/mysql/mysql.sock
■ root パスワード設定(初回のみ)
mysql_secure_installation
以下の項目をすべて y で進めるのが推奨です。
3 SQL 性能評価環境の設計方針
■ 目的
- 単純なSELECTではなく、複数テーブルJOIN・条件付き集計・インデックス有無の比較などを評価する。
- DDL(テーブル定義)とデータ生成スクリプトを外出しして管理する。
■ ディレクトリ構成
mysql-eval/
├── 01_create_db.sql
├── 02_insert_data.sql
├── 03_test_queries.sql
└── run_eval.sh # 実行スクリプト
4 実行スクリプト例(run_eval.sh)
#!/bin/bash
#!/bin/bash
# =====================================
# MySQL SQL Evaluation Runner
# =====================================
USER="root"
PASS="evergreen1997" # 必要に応じてパスワード入力
HOST="localhost"
echo "=== Step 1: Creating database and schema ==="
mysql -u $USER -p$PASS -h $HOST < 01_create_db.sql
echo "=== Step 2: Inserting test data ==="
mysql -u $USER -p$PASS -h $HOST < 02_insert_data.sql
echo "=== Step 3: Running test queries ==="
mysql -u $USER -p$PASS -h $HOST --table < 03_test_queries.sql | tee results.log
echo ""
echo "=== Step 4: Done! Results saved to results.log ==="```
---
5 SQL 評価の基本手順
-
スキーマ適用
mysql -u $USER -p$PASS -h $HOST < 01_create_db.sql -
データ挿入
mysql -u $USER -p$PASS -h $HOST < 02_insert_data.sql -
クエリ実行 + 時間計測
mysql -u $USER -p$PASS -h $HOST --table < 03_test_queries.sql | tee results.log
6 ソース
6 評価ポイント
| 評価項目 | 方法 |
|---|---|
| 実行時間 |
/usr/bin/time の real 値で比較 |
| 実行計画 |
EXPLAIN or EXPLAIN ANALYZE
|
| インデックス効果 |
CREATE INDEX / DROP INDEX の前後比較 |
| キャッシュ影響 |
RESET QUERY CACHE or 再起動で除去 |
7 トラブルシューティング
| 症状 | 対応 |
|---|---|
Can't connect to local MySQL server |
サーバ未起動 → mysql.server start
|
brew services list に mysql が出ない |
Homebrewサービス未登録 → brew services start mysql
|
Access denied for user 'root'@'localhost' |
mysql_secure_installation でパスワード再設定 |
| 接続先ソケットが違う |
--socket=/opt/homebrew/var/mysql/mysql.sock を指定 |
🧭 まとめ
-
brew install mysqlで簡単にローカル環境構築可能。 - SQL性能評価には 複合テーブル構造 + DDL/データ分離構成 が最適。
- 実行時間は
/usr/bin/time、実行計画はEXPLAIN ANALYZEで分析。 - 自動化スクリプト(
run_eval.sh)を使えば複数クエリの比較が容易。