そーだいなるらくがき帳

そーだいが自由気侭に更新します。

#PHPerKaigi で失敗から学ぶRDBの話をした

登壇資料

まとめ

本に全部買いてるので買ってくれ!

質問

当日会場であった質問です。

DBをリファクタリングするときに何処から始めるのがいいですか?

下記のブログにも書いてますがまずはアプリケーションから始めましょう。 RDBMS側は影響範囲が広いからです。 テストもアプリケーションは書けるし、なにより自分が主導で進めていけるはずです。 その先にRDBMSがどうしても変更しないといけないことがあればそれに向き合っていく。 そういう順番だと思います。

soudai.hatenablog.com

もう少し、RBBMSの本当のリファクタリングに踏み込んだ話でいうと次の4つが必要です。

  • 抽象化
  • テストコード
  • モニタリング
  • 覚悟

これらについては下記のブログのスライドにも書いてあります。 buildersconのサイトには動画もあるのでそちらもどうぞ。

soudai.hatenablog.com

実際に弊社 オミカレでもDBのリファクタリングをやっています。 その話はエンジニアhubに寄稿したので詳しいことはこちらを見てください。 如何に抽象化していくかの実例が書いてあります。

employment.en-japan.com

JSON型を使うとORMとのミスマッチは減ると思いますが問題はありますか?

なんと本に JSONの甘い罠 の章があります。 僕もとりあえずJSONでいいじゃん?って思って苦しんだ時期がありました。 その頃(4年前)の資料はこちらです。

www.slideshare.net

これがJSONの甘い罠の元ネタです。 「とりあえずJSON」はアンチパターンだと言う話は他にもあります。 こちらの翻訳記事も呼んでみてください。

yakst.com

JSON型を使うなという話ではなく、トレードオフをしっかり意識しましょう。

DBのモニタリングはどこからやればいいですか?

DBのモニタリング、無限に深掘り出来るのでまずはスロークエリと統計情報から見ましょう。 統計情報を見るためにはモニタリングツールのを使うのがいいです。 本の中にも 監視されないデータベース見られないエラーログ という章があります。 こちらも見てください。 監視自体の知識には入門監視がいい本なのでぜひ読んでみてください。 実際の細かい統計情報についてはこの辺をみてください。

よし!飲み行くぞ!!!