MySQLの関数indexはオンラインDDLと相性が悪く、Generated Columnを使ってインデックスを定義した方が良さそう Apr 1, 2024 単純なカラム追加をオンラインDDLで実行しようとするとエラーが発生した MySQLのversionは8.0.19。 カラム追加のalter tab
row_number()を使ってMySQLで同じ行ごとに結合する Feb 8, 2022 MySQLで同じ行ごとに結合する SQLで同じ行ごとに結合することはできない。INNER JOIN, LEFT JOINなら結合カラムを指定するし、指定しないでC
MySQL 8.0でもDELETE文の場合はサブクエリを使うとINDEXが利用されないため、JOINを使うべき Oct 4, 2021 SELECTで最適化されるサブクエリ MySQLのサブクエリは他のRDBMSに比べて性能の最適化面で劣っている印象だが、単純なSELECT文に
データベースで日時を保存するカラムの命名ルール Sep 29, 2021 データベースで日時を保存するカラムの命名ルールを検討する created_at データベースで日時を保存するカラムの命名ルールを考える。 調査前、created_a
MySQLのユーザー定義変数をSELECTの中で設定して利用してはいけない Jul 9, 2021 二つのMySQLのユーザー定義変数の設定方法 @をつけて@変数で定義できるユーザー変数には、MySQL 8.0(現時点の最新)までで二つの設定方
MySQL 8のSKIP LOCKEDを使って負荷のかからないジョブキューを実装する Jul 5, 2021 MySQL 8で導入されたSKIP LOCKED MySQL 8でSELECT ... FOR UPDATEにSKIP LOCKEDというオプションが加わった。これはロックされている行を除い
ORDER BY + LIMITでINDEXを使いたいのにWHEREが先に評価されINDEXが有効利用できない場合の対策 Apr 6, 2021 TL;DR ヒント句を使ってWHEREでのINDEXを使わないようにする。 また、同時にORDER BYでINDEXを使うように明示すると可読性が上がる。
MySQLのUPDATEで更新されるカラムをSET内でそれ以降に参照すべきでない Feb 10, 2021 MySQLでUPDATEするときの列順とその影響 MySQLのUPDATE文でSET col1 = col1 + 1, col2 = co1としたとき、col2 = col1のcol
MySQLのJSONをテーブルに変換して集計等を行う Feb 9, 2021 JSON_TABLE()を使ってMySQLのJSONをテーブルに変換する MySQL 8.0のJSONをテーブルに変換するにはJSON_TABLE()を
1対多の結合をしてもJSON関数を使って行数を増やさずSELECTする Mar 26, 2020 1対多の結合をしても1の方でマッチする行数のみ取得する SQLで1対多の結合をすると行数が多の方に合わせて取得できるが、プログラム上では1の方