Categories: 勉強会

SQLアンチパターンNightに参加してきたまとめ #sql_ap_night

オライリーから出ているSQLアンチパターンという本。良書ですよね。

先日SQLアンチパターンNightという勉強会があるというので行ってきたのでそのときのメモです。

遅刻してしまったので他のまとめに期待はしていますが、中途半端なまとめだけども頑張ってまとめます。

@hironomiu様の発表

資料は見つけられないのと、遅刻してほとんどメモはございません。。。

資料見つけられたら追加します。

メタデータトリブルについてや、シャーディングなどについて話していました。

あとはDB設計における新たなアンチパターンとして、謎の言霊:安全率

(設計時に安全率を考慮して掛け算していくと膨大なサイジングになるという現象)

SQLアンチパターンNight

スタンド名はワイルドサバンナ


本の裏話
共同監修の和田省二様はなんと父親でした!

  • 原稿はRe:Viewで執筆
    • Markdownだとソースコードの引用が大変だったのでこれにした

アンチパターンとは

  • よかれとおもってやったことが裏目に出て問題が生じる
  • ナイーブツリー
    • 共通テーブルを使うなら使ってもいい
    • SQLサーバは列挙型をサポートしている
    • 再起クエリさえかければこれはアンチパターンじゃなくなる

ダイジェスト

  • ネット上でよく燃える炎上度ランキング
    • ナイーブツリー:1
    • IDリクワイアド:5
    • キーレスエントリ:4
    • EAV:1
    • ファントムファイル:4
    • フィア・オブ・ジ・アンノウン:3
      • わからないことにはNULLを入れる
      • NULLを巡る争い
    • スパゲッティクエリ:1
      • n+1の問題と勘違いする人がいた
    • SQLインジェクション:1
      • サニタイズの話で、prepared statement
  • キーとNULLはよく燃える
    • NULLを排除した場合はDBの設計にくわしくならないといけない

パターンの意義

  • SQLアンチパターンのいいところは悪い方法を悪いこととしてまとめてくれたこと
  • アンチパターン名で議論できるようになる
    • マルチカラムアアトリビュートとか10年前に通ったわー
    • あーはいはい、インデックスショットガン乙
  • 社内読書会をすると、社内での例で反省会ができる
  • 新たなアンチパターン
    • 闇雲な安全率
    • とりあえず論理削除フラグ
    • 忍者屋敷
      • トリガーが好きな設計者
      • トリガーがトリガーを発動させる
    • リレーションとリレーションシップ
    • 寿司とビール
  • 実は論理削除の章を書きたかった

無料シェア会議室 PORTの宣伝

今回、VOYAGE GROUPの会議室を借りての開催となりましたが、他にも勉強会で開催する場合は申し込むと会議室をレンタルする以外にもピザなども振る舞ってくれるみたいです。

VOYAGE GROUPの「PORTO」についてご紹介しています。
- 株式会社VOYAGE GROUP

虚々実々のファントムファイル

@bash0c7

ファントムファイルのアンチパターンに終息宣言をした発表。

その実態はS3にファイルをぶっこむという方法。

昔はサーバに置いたら使われないファイルを削除するようにしたり・・・などありましたが、S3などにおいてしまえば容量無限大ですのでそういうの気にせず、ミスした削除により置いたファイルがないということはなくなりそうですね。

良い世の中になりました。

SQLアンチパターンNight ライトニングトーク

Facebookにログインして、友達や家族と写真や近況をシェアしましょう。
Facebookにログイン - Facebook

サンプリングの少なさなどの見積もりミスと、本番サーバのほうがスペックがいいという思い込みにより発生した失敗談。

@yodatomato様の発表

実際にアンチパターンに遭遇したお話。

嘘!?私のDB、カンマ多すぎ!?や、SQLインジェクションのお話などをされてました。

最後のエンジニア募集は秀逸な募集の仕方で中々面白かったですw

@kamipo様の発表

MySQL と寿司ビール問題についての飛び入り発表

cf :

2014年12月12日現在、rails 4.2.0.rc2でもうすぐ4.2.0がリリースされそうですね!ここ最近MySQL向けパッチをいっぱいPRしたんですけど4.2.0には入れれなかったので、MySQL向けパッチを4.x向けにバ...
activerecord-mysql-awesome - ActiveRecordのMySQL向けパッチのバックポート集 - ... - Qiita
Awesome patches backported for ActiveRecord MySQL adapters. - GitHub - kamipo/activerecord-mysql-awesome: Awesome patches backported for ActiveRecord MySQL adapters.
GitHub - kamipo/activerecord-mysql-awesome: Awesome patches backported for Ac... - GitHub

寿司ビール問題を解決するために、みんなImpact on meの「Affects me」ボタンを押しまくって是非MySQL本体のほうで解決してもらおう!!!

個人的感想

  • キーとNULLはみんなだいすきな問題なんだなと感じました。
  • 再帰クエリ使ったこと無いけど、MySQLでも使えるようになれば可能性は広がりそう。
  • 懇親会で知りましたが、PostgreSQLにマテビュー追加されてたんですね。
  • 非売品のバッチがもらえて嬉しい!!

mogmet

View Comments