プログラミング

SQL

N+1問題の仕組みと解決パターン:JOINとIN句で防ぐ方法

SQLやORMで発生するN+1問題の仕組みを、MySQLの実例で解説します。JOINで1クエリにまとめる方法とIN句バルクフェッチの2つの解決パターンを比較し、ORMのeager loading活用法や落とし穴も整理。
SQL

MySQLの主キー・外部キー設計:自然キーとサロゲートキーの基本

MySQLの主キーと外部キーの設計指針を実例つきで解説します。自然キーとサロゲートキーの違い、外部キーのON DELETE・ON UPDATEオプション(CASCADE/RESTRICT)の挙動を表で整理しています。MySQL 8.0対応。
SQL

データベース正規化の基本:第1・第2・第3正規形を実例で解説

データベースの正規化(1NF〜3NF)を受注テーブルの実例で段階的に解説します。繰り返しグループ・部分従属・推移従属それぞれの問題点と解消手順をSQL付きで整理。初心者〜中級者向け、MySQL 8.0対応。
SQL

MySQLのトランザクション分離レベル:ACID・異常現象を整理

MySQLのACID特性と4つのトランザクション分離レベルを実例つきで解説します。ダーティリード・ノンリピータブルリード・ファントムリードの違いと、デフォルトのREPEATABLE READで何が防げるかを表で整理しました。
SQL

SQLインジェクションの仕組みと対策:プレースホルダで防ぐ方法

SQLインジェクションの仕組みを脆弱なコード例で確認し、プレースホルダ(プリペアドステートメント)による防御方法をPHP・Python・Node.jsの実例で解説します。MySQLで動く実用コード付き・初心者向け。
SQL

UNIONとUNION ALLの違いと使い分け:重複排除と性能を実例で解説

SQLで複数SELECT結果を縦結合するUNIONとUNION ALLの挙動の違いを実例で解説します。重複排除の仕組み・性能差の理由・ORDER BY/LIMITとの組み合わせ方をMySQL 8.0対応で整理。
SQL

MySQLでEXPLAINを読む方法 — type列の意味を理解する

MySQLのEXPLAINが返す type・key・rows・Extra 各列の意味と読み方を、具体的なテーブルを使って解説します。type=ALL や Using filesort が出たときの改善策も紹介。MySQL 8.0 対応。
SQL

SQLのNULLと三値論理:IS NULL・COALESCEの使い分け

SQLでNULLが絡む比較・集計・JOINには独特の落とし穴があります。三値論理の基礎から、IS NULL・COALESCE・NULLIF・IFNULLの使い分けと集計時の注意点を、MySQL 8.0の実例で整理します。
SQL

MySQLインデックスの仕組みと貼り方の基本(B-tree解説)

MySQLのインデックスがどう動くかを、B-tree構造の仕組みから解説します。CREATE INDEXの書き方、貼るべき列・貼ってはいけない列の判断基準、インデックスが効かないよくある落とし穴まで実例つきで紹介。MySQL 8.0対応。
SQL

SQLのEXISTSとINの違いと使い分け:NULL問題と性能まとめ

SQLのINとEXISTSの動作の違いを実例で解説します。特にNOT INはサブクエリ結果にNULLが混在すると全件0件になる落とし穴があります。性能差が出るケースやEXPLAINの見方もMySQL 8.0対応で整理。