もう2週間以上前の事になってしまったが、松信 嘉範さんのデータベース[実践]入門を読んだ。
自分のブログ見返してみると、どうもプログラム書いてる人に見えないのである。
ちょっとは勉強してる内容とかも書かないと誤解されそうだ!と思い始めた((((;゚Д゚))))ガクブル。
ここ1,2ヶ月で言うと
研究室の課題・今後の実験:Java
API叩いたり手軽に使うの:Python (パーフェクトPythonで勉強中w)
プロコンとアルゴリ:C++ (ごくわずかな時間( ・_・)r )
って感じでちゃんとコードも書いてます( ー`дー´)キリッ
(web開発してないので、PHPは、、、)
とかとか、大学の研究テーマも決まってきて忙しい一方で、一般的なPCではメモリに全く載りきらないようなデータをRDB上で扱ったりして、データベースへの興味が高まり続けています。
特にSQL Serverを触っている関係で、↓ の「SQL Server自習書」にはとてもお世話になっています。(2014版も出てますが、基本的な内容が現時点(2015/6月)では充実しているので2012がおすすめ)
自習書シリーズ - Microsoft SQL Server 2012
OSがWindows系に縛られてしまうのは難点ですが、そのおかげでメモリやCPUの最適化がほとんど自動で出来てしまうSQL Serverの凄さに驚いています!
あとは以前から読んでた
・「Webエンジニアが知っておきたいインフラの基本(馬場俊彰)」
・「大規模サービス技術入門(伊藤直也・田中慎司)」
・「サーバ/インフラを支える技術(略)」
あたりや、読んでいる or これから読もうとしている
・「SQL実践入門(ミック)」
・「理論から学ぶデータベース実践入門(奥野幹也)」
・「アート・オブSQL(木下哲也(訳))」
・「実践ハイパフォーマンスMySQL(略)」
あたりについても書こうかと思ったり。。。
ただ、書籍として売られているものの内容をつらつら書いていくのはまずそうなので、内容の簡単な紹介と、付随して調べた内容くらいを書いてみようかなーと思います。
ー本題ー
データベース技術[実践]入門は、
表紙に「高信頼なシステムを作るための羅針盤」とあるのもうなずけるように、データのハンドリングにデータベースを使う理由から始まって、
CRUD操作、インデックス、テーブル設計(正規化)、レプリケーション、トランザクション、運用の勘所などなど、幅広いDBに関する話題をMySQLを例に説明されています。
結構範囲も広いので、あっさりと読み易く、全体感もつかめた気がするのでお勧めです。
広いと言っても、MySQLのソースを追ってコードを解析するサンプルがあったりと、かなり深い話も出てきています。
後半では大量のデータを高速に扱うための技術として、分析系の処理の話やNoSQLDBの話、Mobageを例にした運用や、規模感のトピックも出てくるので、1つのトピックにフォーカスされすぎない感じも良かったです。(何を上から?)
本の内容は読んでもらえばいいと思うので、、、読んで下さいw
気になった点では、排他制御の1つとしてmutex、レプリケーション・スケールアウトの話でUniversal Scalability Law、クエリのチューニングで1+N型・1+1型のクエリとかとか、
面白そうで、知らないワードも出てきました。。。(が、もう疲れたので書きません)
ある程度RDB関連の本をまとめた時に調べた内容も書こうと思います。
乞うご期待!!
実は今年も開催されるそうなISUCONに向けて、RDBガッツリ勉強してみようなんて意気込んでいたりします。もちろんDBチューニングしたいっすね!!(課題にRDB入ることを祈って。。。)