create table

http://guduwhuzhe.iteye.com/blog/1887619

 

http://backend.wap.blog.163.com/w2/blogDetail.do?blogId=fks_087066080095087071082083084068072084081065086095082066086080&p=8&blogNS=bOPTXIYqJ3o6nWNl6zlS1SWNhPG3m6FVmqHuiDORXsmaybT2ZqhtomYZHDpccG_E_a7u7yOl4W1a%0ATnXMQUsA2GozRqTPh8vVVy2aVaYOBk-mfrJLnbHVIMF1d7GbwkWBWv9ICah93VFSMG78-nIj44BA%0AwClX3kidIzsoZLJKyHAYkRljmdrJRAanrz-1wUyswdiIIYFLdFYQbNeXyK7LtsM1M9Zq19ZTJ81z%0A597Y_ws527IQsKiEkrRhRhlzOwBSFmeKEt1zsggjSnKgkw8Fa6x5TP5aAc9u8NLr5id6y4w-qk1t%0A2MZZ098iSmbp2wJPaJC-63Kr1FhePS2On4nhnyKqaYl-LspivM7rCxD2-TcGUhOlpdIVADPu8LHG%0Aw5W4&hostID=backend

 

 

create table的调用路径如下(5.1.58):
do_command(sql_parse.cc)
->dispatch_command(sql_parse.cc)
   ->mysql_parse(sql_parse.cc)
      ->mysql_execute_command(sql_parse.cc)
         ->mysql_create_table(sql_table.cc)
            ->mysql_create_table_nolock(sql_table.cc),这里会持有LOCK_open
               ->rea_create_table(unireg.cc)
                  ->mysql_create_frm(unireg.cc)
                  ->ha_create_table(handler.cc)
                    ->handler::ha_create(handler.cc)
                       ->ha_innodb::create(handler/ha_innodb.cc)
                        ->create_table_def(handler/ha_innodb.cc),
                          ->row_create_table_for_mysql(row/row0mysql.c)
                        ->create_clustered_index_when_no_primary(handler/ha_innodb.cc)..when no primary key is defined..
                          ->row_create_index_for_mysql(row/row0mysql.c)
                        ->create_index(hanler/ha_innodb.cc)
                        ->row_table_add_foreign_constraints(row/row0mysql.c)

 

posted @ 2015-12-24 16:01  taek  阅读(411)  评论(0编辑  收藏  举报