見出し画像

「失敗から学ぶRDBの正しい歩き方」を読んだ感想

リレーショナル・データベース(RDB)に関する技術書「失敗から学ぶRDBの正しい歩き方」を読み終えました。本書は先輩社員におすすめされた一冊です。現在、私はRDB周りを強化している最中でその一環で読みました。著者は、DBの界隈で有名な曽根壮大さん(通称、そーだいさん)です。

失敗から学ぶ RDBの正しい歩き方

  • 初版:2019年

  • 出版社:技術評論社

  • 著者:曽根壮大

  • ISBN:978-4-297-10408-5

概要

「データベースがよく落ちる」「前任者が残したテーブル,SQLが読み解けない」「RDBMSを入れ替えたら予期せぬバグが」――MySQLやPostgreSQLといったRDBMS(リレーショナルデータベース管理システム)を使った業務システム,Webサービスを設計・運用していると,こういった問題によく直面するのではないでしょうか。本書はRDB(リレーショナルデータベース)の間違った使い方(=アンチパターン)を紹介しながら,アンチパターンを生まないためのノウハウを解説します。それぞれの章では,問題解決に必要なRDBやSQLの基礎知識も押さえるので,最近RDBMSを触り始めた新人の方にもお勧めです。

https://gihyo.jp/book/2019/978-4-297-10408-5

目次

第1章 データベースの迷宮
第2章 失われた事実
第3章 やり過ぎたJOIN
第4章 効かないINDEX
第5章 フラグの闇
第6章 ソートの依存
第7章 隠された状態
第8章 JSONの甘い罠
第9章 強過ぎる制約
第10章 転んだ後のバックアップ
第11章 見られないエラーログ
第12章 監視されないデータベース
第13章 知らないロック
第14章 ロックの功罪
第15章 簡単過ぎる不整合
第16章 キャッシュ中毒
第17章 複雑なクエリ
第18章 ノーチェンジ・コンフィグ
第19章 塩漬けのバージョン
第20章 フレームワーク依存症

https://gihyo.jp/book/2019/978-4-297-10408-5#toc

感想

本書は、実務でRDBの設計・運用保守を行う方には是非読んでほしいと思いました。逆にいえば、入門書ではないため勉強したての方や学生にはあまりおすすめできません。入門書を読んで、RDBMSの仕組みをわかったうえで本書を読むと効果的です。

主な内容はRDBのアンチパターンで、一般的に知られていることを押さえつつ、監視・バックアップ・コンフィグなど保守運用で見落としがちなことも漏れなく押さえています。アンチパターンとその解決手法をセットで紹介されているのですが、そーだいさんの経験に基づいた知見も書かれており、この点が本書ならではの情報となっています。

紹介しているアンチパターンが多い

本書は約280ページと技術書にしては軽い方なのですが、その中で20個ものアンチパターンが紹介されており、ページ数のわりに情報量が多いです。各アンチパターンは10ページ程度ですので、気軽に読みやすいです。

逆引き辞書としても使えるなと思っていて、たとえば業務でエラーログを読んでいるときに、「エラーログに関してはどんなアンチパターンがあったっけ?」と思ったら本書を取り出せばすぐに確認できます。

とはいえ、一気に読むと情報量の多さに頭がパンクすると思います。少しずつ読み進めるのがいいでしょう。

実務でありそうなアンチパターンの例から始まる

基本的に章は次の4つで構成されています。

  1. 具体的な例

  2. 解説

  3. 解決方法

  4. ポイント

章の始めでは実務でありそうなストーリー仕立ての失敗例が紹介されます。人によっては実際に経験があったり、なくてもそういうことがありそうと思ったりして、どういう場面でアンチパターンが発生するのかイメージがしやすいです。この構成は他の技術書でもありますが、やはり共感できて頭に入ってきやすいです。

そして、失敗例がなぜ悪いのかの解説が始まって、その解決方法の紹介。まとめとしてポイントを述べるという構成になっています。

読んでよかった章

個人的に読んでよかったと感じた章を紹介します。アンチパターンの解決方法は実際に手を取ってご確認ください。

第5章 フラグの闇

Deleteフラグのような状態をテーブルに持たせるアンチパターンです。割とどのシステムにもありそうなので目から鱗でした。たしかにクエリが複雑になりますし、インデックスも効かなくなるしでいいことはなさそうです。

第10章 転んだ後のバックアップ

バックアップを設定していたと思ったら実は正しく動いておらずdumpが出力されていなかったというアンチパターンです。こんなことがあったらと考えるだけでゾッとします。今では検証環境の構築、障害演習、データ解析でバックアップファイルにはお世話になると思いますが、これらが普及する前だと実際にこういう事例が起こっていそうですね。恐ろしや。

第16章 キャッシュ中毒

キャッシュ機能を利用しまくった結果システムが複雑になりデータの不整合が起たというアンチパターンです。キャッシュはシステムのパフォーマンスを上げるには魅力的でつい使いたくなりがちですが、設計を丁寧にしないとカオスになってしまいます。用法・用量を守って正しくお使いしたいところです。

まとめ

  • RDBの入門を終えた人におすすめ

  • サクッとRDBのアンチパターンを網羅できる

  • DB設計・運用保守の実務で活用できる

そーだいさんは様々なイベントで登壇しており、講演スライドを読むだけでも非常にためになります。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?