5/24にNSEGの「SQLアンチパターン読書会」の第10回に参加しました。
隔週の水曜日の夜に開催しています。だいたいいつも3〜4人くらいでこじんまりとやってます。
一人が1〜2ページくらいを音読して、気になったことをみんなで話したりして、また次の人が読んで…を繰り返しすという感じでやってます。
今回は14章と15章を読みました。以下、話された内容を記憶を頼りに。
14章 アンビギュアスグループ(曖昧なグループ)
「これエラーにならないのMySQLだけじゃない?」
「MySQLも5.7からは標準でエラーになる」
「SQL 99 だと GROUP BYに書いてないカラムでも論理的に一意に求まるのならエラーにならないらしい」
「PostgreSQL でも最近はエラーにならなくなるケースがあるらしい」
「相関サブクエリむずい」
「MySQLは伝統的にサブクエリが遅い。最近はかなりマシになったらしい」
15章 ランダムセレクション
「LIMIT を使えない RDB あったのか!」
「プリペアドステートメントって “?” だけじゃなくて “:offset” みたいな書き方できたの?」
「それはたぶんPHPのクライアントサイドプリペアドステートメント。クエリの一部を書き換えるので過去に脆弱性問題があった。文字列としてクエリの一部を書き換えるのは悪手で、やるなら一段レイヤーを上げて Ruby の Sequel みたいなやりかたがいいと思う」
次回は 6/7 18:30〜 です。興味があって都合のつく人は参加してみてください。