MySQL のパフォーマンス
クエリが遅いとき、まず確認すべきなのが実行計画です。MySQL では `EXPLAIN` 文を使うことで、クエリがどのように実行...
本番環境で「なんか遅い」と感じたとき、原因特定の第一歩はスロークエリログです。一定時間以上かかったクエリを自動的に記録してくれる...
SELECT クエリが遅いとき、闇雲にインデックスを追加するだけでは解決しないことがあります。ここでは、実践的な高速化テクニック...
複数テーブルを JOIN したクエリが遅い場合、いくつかの原因が考えられます。ここでは、JOIN のパフォーマンス問題を診断し、...
インデックスを作ったのに使われない。そんな経験はありませんか?インデックスが期待どおりに機能しない原因と、その対処法を解説します...
複合インデックスは複数のカラムを組み合わせたインデックスです。単一カラムのインデックスを複数作るより効率的な場合がありますが、列...
通常のインデックス検索では、インデックスで行を特定した後、テーブル本体からデータを取得します。しかし、クエリで必要なカラムがすべ...
インデックスは検索を速くしますが、多すぎると書き込み性能の低下やディスク容量の浪費につながります。使われていないインデックスを見...
InnoDB のパフォーマンスに最も影響を与える設定が `innodb_buffer_pool_size` です。この値を適切に...
`max_connections` は MySQL が同時に受け付けるクライアント接続の最大数を制限するパラメータです。小さすぎ...
MySQL のクエリキャッシュ(query_cache)は、一見便利な機能に思えますが、実は多くの問題を抱えており、MySQL ...
GROUP BY、DISTINCT、サブクエリなどを使うと、MySQL は処理の途中で一時テーブルを作成することがあります。この...
MySQL サーバーの状態を把握するために、`SHOW STATUS` コマンドは欠かせません。数百もの変数がありますが、特に重...
`SHOW PROCESSLIST` は、MySQL サーバーで現在実行中のスレッドを一覧表示するコマンドです。遅いクエリの特定...
Performance Schema は MySQL 5.5 で導入された、サーバー内部の詳細なパフォーマンスデータを収集する仕...
sys スキーマは MySQL 5.7 で標準搭載された、Performance Schema のデータを人間が読みやすい形式で...
数千〜数百万行のデータを INSERT する場面では、1 行ずつ愚直に実行すると時間がかかりすぎる。MySQL には大量 INS...
数億行を超えるテーブルにカラム追加やインデックス変更を行う場面は避けて通れない。しかし、無計画に ALTER TABLE を実行...
テーブルの行数が数千万〜数億を超えると、インデックスを適切に設計してもクエリの応答時間が悪化し始める。パーティショニングはテーブ...












