第一次想分析mysql的源码要追溯到两年前,但是直到今天才把源码下载到本地,真难为情。:)
做个备份,好记性不如烂笔头。
sloccount算了一下,整个工程的代码是百万行级的,c++,和ascic为主。从规模来看,丝毫不逊色于wps文字。时隔一年半,再把c++捡起来。
cpp: 631203 (49.60%)
ansic: 543818 (42.74%)
507268 storage cpp=352539,ansic=144769,cs=4647,perl=2455,sh=1641,
lex=639,yacc=524,awk=54
275719 strings ansic=275719
247575 sql cpp=232766,yacc=12408,ansic=2307,sh=94
存储引擎是大头。
1、下载mysql-5.5.8.tar.gz 源码
http://dev.mysql.com/downloads/mysql/#downloads
2、解压,产生build文件
tar xvf mysql-5.5.8.tar.gz
cd mysql-5.5.8
#选择一个平台相关的build脚本,我所选择的是 BUILD/compile-amd64-debug-max-no-ndb
./BUILD/compile-amd64-debug-max-no-ndb -c
依赖于(包含但不是全部): cmake, gcc, g++, libncurses5-dev, apt-get 或 yum都成(平台相关)。
3、创建工程,把mysql的源码导入eclipse并编译
1.3G内存,单核,2.93GHz, 半个小时左右就可以编好了。