精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網

17站長網 首頁 數據庫 Mysql 查看內容

MySQL連接查詢流程源碼

2023-3-16 15:18| 查看: 1856 |來源: 互聯網

main |-mysqld |-my_init // 初始話線程變量,互斥量 |-load_defaults // 獲取配置 |-init_common_variables // 初始化變量 |-init_server_compone ...

main

    |-mysqld

        |-my_init // 初始話線程變量,互斥量

        |-load_defaults // 獲取配置

        |-init_common_variables // 初始化變量

        |-init_server_components // 初始化插件

        | |-plugin_init

        | | |-plugin_initialize

        | |-initialize_storage_engine

        |-network_init // 監聽網絡

        |-grant_init

        |-servers_init

        |-udf_init

 

插件啟動:

 

main

    |-mysqld_main

        |-init_server_components

            |-plugin_init

                |-plugin_initialize

                    |-ha_initialize_handlerton

                        |-innobase_init

 

登錄過程:

 

main

    |-mysqld_main

        |-network_init // 建立socket監聽,一個針對網絡,一個針對unix域

        |-handle_connections_sockets

            |-poll

            |-mysql_socket_accept // 和客戶端建立連接

            |-create_new_thread // 針對每個socket連接建立一個新的線程

                |-create_thread_to_handle_connection

                    |-waiting_thd_list->push_back(thd);mysql_cond_signal(&COND_thread_cache); // 已有連接處理線程時,通過信號喚醒,處理線程函數為pfs_spawn_thread

                    |-mysql_thread_create(啟動的線程執行函數,inline_mysql_thread_create)

                        |-spawn_thread_v1

                            |-pthread_create(pfs_spawn_thread)

 

處理連接:

 

pfs_spawn_thread

    |-handle_one_connection

        |-do_handle_one_connection

            |-MYSQL_CALLBACK_ELSE(thread_scheduler, init_new_connection_thread, (), 0)

            | |-init_new_connection_handler_thread

            |-thd_prepare_connection

            | |-login_connection // 判斷是否可以login,不可以則斷開連接返回錯誤

            | | |-check_connection

            | | | |-acl_authenticate

            | | | |-do_auth_once

            | | | |-native_password_authenticate

            | | | |-server_mpvio_write_packet

            | | | | |-send_server_handshake_packet // 發送handshake包到客戶端

            | | | | |-my_net_write

            | | | | | |-net_write_buff // 將數據寫入到內存

            | | | | |-net_flush // 將內存中數據發送到網絡

            | | | |-server_mpvio_read_packet // 從客戶端接收Login Request信息

            | | | |-my_net_read

            | | |-Protocol::end_statement

            | | |-Protocol::send_ok

            | | |-net_send_ok // 發送response ok

            | | |-my_net_write

            | |-prepare_new_connection_state

            |-do_command

                |-dispatch_command

                    |-mysql_parse

 

select命令:

 

pfs_swpawn_thread

    |-handle_one_connection

        |-do_handle_one_connection

            |-do_command

                |-dispatch_command

                    |-mysql_parse

                        |-parse_sql

                        | |-MYSQLparse

                        |-mysql_execute_command

                            |-select_precheck

                            | |-check_table_access

                            |-execute_sqlcom_select

                            | |-open_normal_and_derived_tables

                            | |-open_tables

                            | | |-open_and_process_table

                            | | |-open_table(THD *thd, TABLE_LIST *table_list, Open_table_context *ot_ctx)

                            | | |-Table_cache::get_table

                            | | |-get_table_share_with_discover

                            | | | |-get_table_share

                            | | | |-open_table_def

                            | | |-my_malloc // 申請表數據結構

                            | | |-open_table_from_share

                            | | |-handler::ha_open

                            | | |-ha_innobase::open

                            | | |-dict_table_open_on_name

                            | | |-dict_load_table

                            | | |-btr_pcur_is_on_user_rec

                            | | |-dict_load_table_low

                            | | | |-dict_mem_table_create

                            | | |-fil_space_for_table_exists_in_mem

                            | | |-fil_open_single_table_tablespace // 打開表空間文件

                            | |-mysql_handle_derived

                            |-handle_select

                                |-mysql_select

                                    |-mysql_prepare_select

                                    | |-JOIN::prepare

                                    |-mysql_execute_select

                                        |-JOIN::exec

                                            |-select_send::send_result_set_metadata

                                            | |-Protocol::send_result_set_metadata

                                            |-do_select

                                                |-sub_select

                                                    |-evaluate_join_record

                                                        |-end_send

                                                            |-select_send::send_data

                                                                |-Protocol::write


本文最后更新于 2023-3-16 15:18,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:[email protected]
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 亚洲国产99在线精品一区二区 | 日日插天天操 | 免费一级a毛片 | 日韩亚洲一区中文字幕 | 黄色片视频在线观看免费 | 香蕉视频在线看 | 九九在线偷拍视频在线播放 | 精品一二 | 久久一本一区二区三区 | 手机看片一区 | 逼逼好嫩视频 | 日本片网站 | 久久青青成人亚洲精品 | 一级视频在线观看 | 国产乱码视频 | 婷婷色亚洲 | 中文字幕日韩一区 | 国产精品91视频 | 国产精品400部自产在线观看 | 欧美一区二区三区不卡视频 | 欧美三级在线 | 一集毛片 | 免费操人 | 91久久香蕉青青草原娱乐 | 国产青青在线视频 | 国内亚州视频在线观看 | 欧美黑人xxxx | 黑人香蕉又粗又大视频免费 | 最新精品视频在线观看 | 国产一级鲁丝片 | 草莓榴莲向日葵十八岁全微糖 | 美国一级毛片视频 | 男女激情视频国产免费观看 | 久久青草91免费观看 | 91网视频 | 仑乱高清在线一级播放 | 99在线国产 | 国产一区精品 | 国产黄色自拍视频 | 精品久久久久久国产 | 韩国一级毛片大全女教师 |