SQL

SQL

MySQLスロークエリログの設定と読み方:mysqldumpslowで分析

MySQLのスロークエリログを再起動なしで有効にする2行のSQLと、my.cnfでの設定、ログの各項目の読み方、mysqldumpslowで遅いSQLを集計する方法を解説します。SET GLOBALが今つながっている接続には効かない落とし穴にも触れます。MySQL 8.0対応。
SQL

MySQLのJSON型入門:JSON_EXTRACTとパス記法

MySQLのJSON型カラムの使い方を実例で解説します。JSON_EXTRACTによる値取得と$パス記法、->/->>演算子の違い、JSON_SETでの部分更新、JSON_TABLEでの配列行展開まで。MySQL 8.0対応。
SQL

WITH RECURSIVEで階層構造を取得する再帰CTE入門

MySQLのWITH RECURSIVEで組織図・カテゴリツリーなど階層データを1本のSQLで取得する方法を、動くサンプル付きで解説。無限ループを防ぐcte_max_recursion_depthの設定も紹介します。
SQL

LIMIT OFFSETページングの限界とSEEK方式の使い方

LIMIT OFFSETのページングは、深いページほど遅くなります。100万件のテーブルで実測し、前のページの最後の値で絞るSEEK方式に切り替える書き方と、行の比較(a, b) < (x, y)で遅くなる落とし穴を解説します。MySQL 8.0対応。
SQL

MySQLのCOUNT 4種類:NULL扱いと使い分けを整理

MySQLの COUNT(*) / COUNT(col) / COUNT(DISTINCT) の違いを実例で解説します。NULL除外・重複排除の仕組みと COUNT(DISTINCT) の性能コストを表付きで整理。
SQL

MySQLのDELETE・TRUNCATE・DROPの違いと使い分け

MySQLのDELETE・TRUNCATE・DROPの動作の違いをロールバック・AUTO_INCREMENT・性能の観点から整理します。実例のSQL付きで、どれを使うべきかの判断基準を示します。
SQL

MySQLデータ型の選び方:数値・文字列・日付型の判断基準

MySQLのデータ型を正しく選ぶには、型ごとのストレージサイズと用途の理解が欠かせません。INT・BIGINT・VARCHAR・TEXT・DECIMAL・DATETIMEの違いと判断基準を実例つきで解説します。MySQL 8.0対応。
SQL

MySQLのLIKEとREGEXPの違い:前方一致と性能の使い分け

MySQLのLIKEとREGEXPの構文・動作の違いを実例で解説します。インデックスが効く前方一致LIKEと、常にフルスキャンになるREGEXPの性能差を把握して、正しく使い分けましょう。MySQL 8.0対応。
SQL

MySQLの日付関数まとめ:DATE_ADD・DATEDIFFの使い方

MySQLでよく使う日付関数(DATE_ADD・DATE_SUB・DATEDIFF・DATE_FORMAT)の基本構文と実例を整理します。月末計算・曜日取得など実務パターンも網羅。MySQL 8.0対応。
SQL

MySQL文字列関数まとめ:CONCAT・REPLACE・TRIMほか

MySQLのCONCAT・SUBSTRING・REPLACE・TRIMなどよく使う文字列関数の構文と実例を一覧で整理します。LENGTHとCHAR_LENGTHのバイト数・文字数の違い、NULLが絡む落とし穴もあわせて解説します。