Webエンジニアのためのデータベース技術[実践]入門

この本は、かなり基本的なところから、最新技術のところまで書いてあり、大変参考になった。たとえば、Excelでは何故だめなのかから始まっているにもかかわらず、最後はNoSQLの話まで言及している。とはいえ、もともとの話が、Linux上のMySQLの話をベースにしているためか、そこに若干偏っている気がしなくもない。この手の話は、バックグラウンドのデータベースに依存するのはいつものことなのであるが。

インデックスの話では、B treeに比べ、B+ treeがなぜ良いのかという話や、ハッシュインデックスの有効性とその限界まで話している。
ストレージ技術では、SSDやネットワーク帯域とデータベースの性能の話がある。たとえば、以下の性能が出てくる。ただし、これらはインメモリでの処理で高速化している場合で、ネットワーク帯域だけがボトルネックとした場合である。

  • 100MbEなら35,000クエリ/秒
  • 1GbEなら100,000クエリ/秒(MySQL)か250,000クエリ/秒(memcached)

MySQLの設定や管理およびソースコードへの手の加え方等々技術力アップに関する話ものせている。
最後にSQLとNoSQLの使いどころの話をしている。SQLを使った場合と使わない場合の性能差についても言及しており、参考になる。
因みに、ベースとなった原稿は、2008年から2011年までのSoftware Designや、Web+DB Pressの記事とのことであった。

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

ここで引用しているデータモデリングの推薦本は以下
実践的データモデリング入門 (DB magazine selection)
業務別データベース設計のためのデータモデリング入門
生産管理・原価管理システムのためのデータモデリング
グラス片手にデータベース設計~販売管理システム編 (DBMagazine SELECTION)

とはいえ、単にデータベースアーキテクチャという話であれば、以下が参考になる。ただし、こちらは、PostgreSQLベースである。これを見ると、AWSのJames Hamilton氏もデータベース界の重鎮なのかな?と思ってしまう。
http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf
そして、データベースの歴史まで見るならば以下が参考になる。こちらは、もともとはReadings in Database Systemsの冒頭に収められている論文である。
http://people.csail.mit.edu/tdanford/6830papers/stonebraker-what-goes-around.pdf