• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • MySQL线程

    MySQL服务器创建以下线程:

    • 连接管理器线程在服务器侦听的网络接口上处理客户端连接请求。在所有平台上,一个管理器线程可处理TCP / IP连接请求。在Unix上,此管理器线程还处理Unix套接字文件连接请求。在Windows上,管理器线程处理共享内存连接请求,另一个管理器处理命名管道连接请求。服务器不会创建线程来处理它不监听的接口。例如,不支持命名管道连接的Windows服务器不会创建处理它们的线程。
    • 连接管理器线程将每个客户端连接与专用于该客户端连接的线程相关联,该线程处理身份验证并请求对该连接的处理。管理器线程在必要时创建一个新线程,但请尝试先咨询线程高速缓存以参见其是否包含可用于连接的线程,从而避免这样做。连接结束时,如果高速缓存未满,则其线程将返回到线程高速缓存。

      有关调整控制线程资源的参数的信息,请参见“ MySQL如何处理客户端连接”。

    • 在主复制服务器上,从服务器的连接与客户端连接的处理方式相同:每个连接的从服务器有一个线程。
    • 在从属复制服务器上,启动I / O线程以连接到主服务器并从中读取更新。启动SQL线程以应用从主服务器读取的更新。这两个线程独立运行,可以独立启动和停止。
    • 信号线程处理所有信号。该线程通常还处理警报和调用,process_alarm()以使闲置时间过长的连接超时。
    • 如果InnoDB使用,则默认情况下将有其他读取和写入线程。这些数目由innodb_read_io_threadsinnodb_write_io_threads参数控制。请参见“ InnoDB启动选项和系统变量”。
    • 如果使用该选项启动服务器,则会创建一个专用线程,以每秒钟刷新所有表。--flush_time=valval
    • 如果事件调度程序处于活动状态,则该调度程序有一个线程,而当前正在运行的每个事件都有一个线程。请参见“事件计划程序概述”。

    mysqladmin processlist 仅显示连接,复制和事件线程。