多路IO复用,mysql简介

一:IO多路复用

     IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动          IO(event driven IO)。我们都知道,select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理        就是select/epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。它的流程如        图

多路IO复用,mysql简介

当用户进程调用了select,那么整个进程会被block,而同时,kernel会“监视”所有select负责的socket,当任何一个socket中的数据准备好了,select就会返回。这个时候用户进程再调用read操作,将数据从kernel拷贝到用户进程。
    这个图和blocking IO的图其实并没有太大的不同,事实上还更差一些。因为这里需要使用两个系统调用(select和recvfrom),而blocking IO只调用了一个系统调用(recvfrom)。但是,用select的优势在于它可以同时处理多个connection。

多路IO复用,mysql简介

多路IO复用,mysql简介

二:异步IO模型

多路IO复用,mysql简介

三:mysql简介

       多路IO复用,mysql简介

多路IO复用,mysql简介

2、数据库相关概念
    数据库服务器:运行有数据库管理软件的计算机
    数据库管理软件mysql:就是一个套接字服务端
    库:就是一个文件夹
    表:就是一个文件
    记录:就相当于文件中的一行内容(抽取事物一系列典型的特征拼到一起,)
    数据:用于记录现实世界中的某种状态