首先我觉得目的先要明确,看源码的目的是为了在更高层次上去理解某个场景的出现,比如锁、执行计划,查看的目的不是为了开发,所以目的明确的话,我觉得查看源码就限于看懂某个函数的实现能够用GDB跟踪某些函数这样我觉得就够了,不需要去更加深入的去看INNODB的代码规范以及更加细节的东西,因为我犯过错,在这些上面花了很长时间,但是后来觉得这些东西应该是为了做出能够在生产上使用的产品才会去涉及的,我根本没必要去更加深入的去了解。不如说我执行一条SQL,使用了全表扫描的时候,我用SHOW SESSION STATUS 看到Handler_read_first和Handler_read_rnd_next的统计值会增加,我就可以用GDB去跟踪相应的函数,然后统计下,一共调用的次数是不是和这个统计值相等,这样你就会真正的理解到这些值到底是什么时候统计的。