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

17站長網

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

MySQL連接查詢流程源碼

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

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,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

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

17站長網微信二維碼

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

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 国产精品久久做爰 | 高潮岳喷我一脸 | 国产黄色a | 日韩第一 | 亚洲不卡影院 | 在线日韩欧美一区二区三区 | 91sex在线观看免费 | 中国xxx片| 国产片欧美片亚洲片久久综合 | 国产麻豆91网在线看 | 一区二区三区视频免费观看 | 久久激情综合网 | 鲁久久| 一级成人a做片免费 | 免费看a视频 | 亚洲欧美一区二区三区四区 | 全免费午夜一级毛片一级毛 | 激情在线观看视频免费的 | 免费高清性色生活片 | 无码中文字幕日韩专区 | 国产综合福利 | 国内精品久久久久鸭 | 轻轻操在线播放 | 久久青青草原精品无线观看 | 欧美性xxxxx极品老少 | 久久99这里只有精品国产 | 欧美大黄视频 | 91视频黑丝 | 国产午夜视频在线观看 | 国产成人精品免费视频大全可播放的 | 69男女囗交动态图视频 | 猫咪人成免费网站在线观看 | 日本xxx护士与黑人 日本xxx免费视频 | 国产高清色播视频免费看 | 久久人人网 | 久久国产精品一区 | 毛片免费观看久久欧美 | 狠狠久久亚洲欧美专区 | 一级黄色片中国 | 麻豆视频观看 | 永久免费精品视频 |