有哪些网站有做网页用的小图片,营销策划精准营销,中国住房和建设部网站,分析网站优缺点一、连接协议支持
mysql支持4种通信协议#xff1a;TCP/IP协议、Unix Socket协议、Share Memory协议、NT管道
windows支持三种连接方式#xff1a;TCP/IP协议、Share Memory协议、NT管道
unix支持两种连接方式#xff1a;TCP/IP协议、Unix Socket协议
协议介绍如下…一、连接协议支持
mysql支持4种通信协议TCP/IP协议、Unix Socket协议、Share Memory协议、NT管道
windows支持三种连接方式TCP/IP协议、Share Memory协议、NT管道
unix支持两种连接方式TCP/IP协议、Unix Socket协议
协议介绍如下
1.TCP/IP协议 传输控制协议(Transmission
Control Protocol)/互联网协议(Internet
Protocol)是一套被用于连接互联网上各主机的通信协议。TCP/IP一开始是用于UNIX操作系统建立互联网通信的。现在它已经成为了一种网络数据传输的事实标准。即便那些拥有自己通信协议的网络操作系统如Netware也支持TCP/IP协议。 2. Unix Socket协议 在计算机世界一个socket是一种内部进程通信形式它被用于在相同主机上形成进程间的双向通信连接点(在本地系统上的一个物理文件)。 3. Share Memory协议 一个在程序间传送数据的有效方法。一个程序会建立一个内存区以提供其它受允许的进程进行访问。Windows显式”passive”连接模式仅可工作于(Windows系统)主机中。 4. NT管道
这种命名管道设计更偏向于客户端-服务器通信它们更像socket除了用于通常的读写操作外Windows命名管道也同时对server应用支持显式”passive”被动连接模式。仅在单独(Windows平台)主机中运行。 二、连接管理 ----没考虑到线程池
1.命名管道连接处理线程
handle_connections_namedpipes()
2.共享内存连接处理线程
handle_connections_shared_memory
3.socket连接处理线程 -unix socket和tcp/ip都在其中实现
handle_connections_sockets_thread
4.连接完成后创建线程加入全局线程调度并进行连接处理涉及以下函数
create_new_thread(thd);
add_global_thread(thd);
create_thread_to_handle_connection(thd); 三、连接处理
主要在create_thread_to_handle_connection()函数中主要有两个步骤
1.查看有没有缓存线程可用如果有就唤醒线程去处理该请求
2.如果没有缓存线程可用则创建新线程处理该请求
之后主要赚以下操作
1.权限认证
在thd_prepare_connection()函数中做了host、用户名、密码等安全认知
2.等待数据接收
在以下循环中做了数据读取指令分发功能 while (thd_is_connection_alive(thd)){mysql_audit_release(thd);if (do_command(thd))break;} 可以执行的指令主要包括一下指令
COM_SLEEP,
COM_QUIT,
COM_INIT_DB,
COM_QUERY,
COM_FIELD_LIST,
COM_CREATE_DB,
COM_DROP_DB,
COM_REFRESH,
COM_SHUTDOWN,
COM_STATISTICS,
COM_PROCESS_INFO,
COM_CONNECT,
COM_PROCESS_KILL,
COM_DEBUG,
COM_PING,
COM_TIME,
COM_DELAYED_INSERT,
COM_CHANGE_USER,
COM_BINLOG_DUMP,
COM_TABLE_DUMP,
COM_CONNECT_OUT,
COM_REGISTER_SLAVE,
COM_STMT_PREPARE,
COM_STMT_EXECUTE,
COM_STMT_SEND_LONG_DATA,
COM_STMT_CLOSE,
COM_STMT_RESET,
COM_SET_OPTION,
COM_STMT_FETCH,
COM_DAEMON,
COM_BINLOG_DUMP_GTID,
COM_END 因为不同指令功能较多下面将以select语句作为流程介绍