0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQL ローカル環境での SQL 性能評価手順について

Last updated at Posted at 2025-11-02

概要

このドキュメントでは、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 評価の基本手順

  1. スキーマ適用

    mysql -u $USER -p$PASS -h $HOST < 01_create_db.sql
    
  2. データ挿入

    mysql -u $USER -p$PASS -h $HOST < 02_insert_data.sql
    
  3. クエリ実行 + 時間計測

    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)を使えば複数クエリの比較が容易。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?