有一天,兩個不懂mysql核心的人想去了解mysql核心程式碼,兩個人不是去調試程式碼、找資料,而是在那邊思考。因為不了解內核,所以邊思考邊去驗證。
使用的mysql程式碼是5.1.7,偵錯環境是windows平台下的vs2003。
Bingxi:「alex,你覺得mysql的啟動過程會是什麼樣的呢?我們以銀行為例吧。」
Alex:「嗯,bingxi。早上銀行開門了,會先準備好環境,然後開門迎客,mysql也是這樣。了都會取個號,然後就會進行業務處理。 )將排號的人丟進工作佇列,根據叫號機到指定視窗取得服務。個限制,所謂的最大連接數,這樣的情況常見於互聯網行業,相應地我們可以看到機器的負載變化範圍特別大。型sql語句),同時處理的話,機器會支撐不住,這時候第二種方法就比較好,這種情況屬於事務性場景。 ,oracle提供兩種方法供選擇。 #pthread_handler_t handle_connections_sockets(void *arg attribute((unused)))
{
……
while (!abort_loop)
{
select((int) max_used_connection,&readFDs,0,0,0) < 0) //有连接了则往下来执行,否则一直等待
……
accept(sock, my_reinterpret_cast(struct sockaddr *) (&cAddr),&length) //接受请求
……
create_new_thread(thd);
}
//abort_loop=1,则执行到这里进行推出。今天业务不处理了
}
以上是解析mysql的啟動過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!