MySQL新连接的建立

本文深入探讨了MySQL新连接的建立过程,从源码层面分析了如何通过select和poll模型监听并接受连接请求,详细解释了从监听套接字到创建新线程处理连接的步骤,涉及线程缓存和连接计数的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提前准备网络编程select和poll模型知识网络编程select和poll模型

1.mysql源码结构体poll和结构体select,详解对照网络编程的select和poll模型

  struct poll_info_t

  {

    struct pollfd m_fds[MAX_SOCKETS];

    MYSQL_SOCKET m_pfs_fds[MAX_SOCKETS];

  };

  struct select_info_t

  {

    fd_set  m_read_fds,m_client_fds;

    my_socket m_max_used_connection;

    select_info_t() : m_max_used_connection(0)

    { FD_ZERO(&m_client_fds); }

  };

2.代码栈分析

  ->mysqld/main.cc/mysqld_main

     ->sql/mysqld.cc/mysqld_main

       ->sql/mysqld.cc/network_init

       /*

          Connection_acceptor 是一个模板

          template <typename Listener> class Connection_acceptor

           三种接方式分别传入各自的 Listener

             Mysqld_socket_listener

             Named_pipe_listener

             Shared_mem_listener

            最常用的是 Mysqld_socket_listener

          */

      

            Mysqld_socket_listener *mysqld_socket_listener= new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值