As the start of a bit of a delve into the various MySQL branches and patch sets that have been around, let’s start looking at the history of MySQL itself. This is how big MySQL has been over all of the major releases since the beginning (where beginning=3.23). (edit: These numbers were all gathered using sloccount and only counting C++ and C source files.)
Codebase | LoC (C, C++) | +/- from previous MySQL |
MySQL 3.23.58 | 371,987 | 0 |
MySQL 4.0.30 | 368,695 | -3,292 (from MySQL 3.23) |
MySQL 4.1.24 | 859,572 | +490,877 (from MySQL 4.0) +174,352 excluding NDB |
MySQL 5.0.96 | 916,667 | +57,095 (from MySQL 4.1) |
MySQL 5.1.68 | 1,052,636 | +135,969 (from MySQL 5.0) |
MySQL 5.5.30 | 1,189,747 | +137,111 (from MySQL 5.1) |
MySQL 5.6.10 | 1,544,202 | +354,455 (from MySQL 5.5) |
We can see that MySQL has had some interesting code size changes over time, the big jump in 4.1 over 4.0 was mostly due to the introduction of MySQL Cluster, but even so, it was a big jump.
MySQL 5.6 is the largest MySQL code size increase in a MySQL version ever. The last time we saw anything like this was with the merging of MySQL Cluster in 4.1. At the very least, Oracle is paying people to write lines of code to extent that nobody has before.