函数所在文件:sql/sql_parse.cc
该函数是处理单个查询请求的接口函数。
主要流程如下:
1.初始化线程
hread_scheduler.init_new_connection_thread()
2.在完成必要的检查和初始化后,进入一个for(;;)循环。
3.认证用户
if (login_connection(thd)) goto end_thread;
4.初始化thd来接受查询
prepare_new_connection_state(thd);
5,执行查询代码
while (!net->error && net->vio != 0 && !(thd->killed == THD::KILL_CONNECTION)) { if (do_command(thd)) break; }
可见,do_command(thd)是实际处理查询的函数。
6.进入到连接结束和清理阶段
close_connection(thd, 0, 1);
if (thread_scheduler.end_thread(thd,1))
return 0; // Probably no-threads
本文详细介绍了MySQL中处理单个查询请求的过程。从初始化线程到认证用户,再到执行查询和清理连接,深入剖析了核心函数do_command(thd)的工作原理。
4041

被折叠的 条评论
为什么被折叠?



