MySQLで使うファイルのフォーマットも書かれているマニュアル!

この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの8日目です.



 MySQLのドキュメントの中には、ファイルフォーマットなどについて書かれているものもあります。
その名も「MySQL Internals」。
MySQLドキュメントのトップページに行って、右下のほうにリンクがあります。
http://dev.mysql.com/doc/

.

f:id:sakaik:20151208224917p:plain


この日記の末尾に掲載した目次のとおり、広範なトピックについて、MySQLの開発ポリシーやファイルフォーマット、関連するソースファイルの説明などが書かれています。

たとえば、MyISAMInnoDB のファイルフォーマットについては、以下に記述があります。
MySQL :: MySQL Internals Manual :: 11 File Formats
MySQL :: MySQL Internals Manual :: 20 MyISAM Storage Engine
MySQL :: MySQL Internals Manual :: 21 InnoDB Storage Engine



 また、とみたまさひろさんが超絶に詳しい、MySQLのクライアント/サーバ間の通信プロトコルについても詳細に説明されています。昔見た時よりもパワーアップしている気がします(SSLについてとか、あったかなぁ。。)。
MySQL :: MySQL Internals Manual :: 14 MySQL Client/Server Protocol


 通信プロトコルの所にレプリケーションについても書かれていますが、より詳しく、レプリケーションの考え方などについては別の章も儲けられています。(ただしこの章は5年以上更新されていないようなので、当時の考え方を知るという使い方が良いでしょう)
MySQL :: MySQL Internals Manual :: 18 Replication


 私自身、ひとつひとつ読んではいないのですが、パラパラ眺めているだけでもわくわくしてきたので、時間作って、レプリケーション周りの通信プロトコルなど、読んでみたいところです。


Table of Contents of "MySQL Internals"

Preface and Legal Notice
1 A Guided Tour Of The MySQL Source Code
2 Coding Guidelines
3 Reusable Classes and Templates
4 Building MySQL Server with CMake
5 Plugins
6 Transaction Handling in the Server
7 The Optimizer
8 Tracing the Optimizer
9 Memory Allocation
10 Important Algorithms and Structures
11 File Formats
12 How MySQL Performs Different Selects
13 How MySQL Transforms Subqueries
14 MySQL Client/Server Protocol
15 Stored Programs
16 Prepared Statement and Stored Routine Re-Execution
17 Writing a Procedure
18 Replication
19 The Binary Log
20 MyISAM Storage Engine
21 InnoDB Storage Engine
22 Writing a Custom Storage Engine
23 Test Synchronization
24 Injecting Test Faults
25 How to Create Good Test Cases
26 Error Messages
A MySQL Source Code Distribution
B InnoDB Source Code Distribution