io模型,mysql

多路复用IO(IO multiplexing)mysql

         多路复用就是调用select来统一管理多个链接web

         强调:redis

         1. 若是处理的链接数不是很高的话,使用select/epoll的web server不必定比使用multi-threading + blocking IO的web server性能更好,可能延迟还更大。select/epoll的优点并非对于单个链接能处理得更快,而是在于能处理更多的链接。sql

         2. 在多路复用模型中,对于每个socket,通常都设置成为non-blocking,可是,如上图所示,整个用户的process实际上是一直被block的。只不过process是被select这个函数block,而不是被socket IO给block。mongodb

         结论:select的优点在于能够处理多个链接,不适用于单个链接数据库

 

异步IO(Asynchronous I/O)服务器

         用户进程发起read操做以后,马上就能够开始去作其它的事。而另外一方面,从kernel的角度,当它受到一个asynchronous read以后,首先它会马上返回,因此不会对用户进程产生任何block。而后,kernel会等待数据准备完成,而后将数据拷贝到用户内存,当这一切都完成以后,kernel会给用户进程发送一个signal,告诉它read操做完成了。oracle

 

 

数据库异步

1.数据库是什么?socket

         数据库本质就是一个C/S的套接字软件

         常见的数据库:

                  关系型:mysql(与mariadb类似)、oracle、db二、sqlserver

                  非关系型:存取数据都是以key:value形式

                                   常见有mongodb、redis、memcache

 

2.数据库相关概念:

         数据库服务器:运行有数据库管理软件的计算机

         数据库管理软件(如mysql):一个套接字服务器

         库:就是一个文件夹

         表:就是一个文件

         记录:文件中一行内容(抽取事物一系列典型的特征拼到一块儿)

         数据:用于记录现实世界中的某种状态

相关文章
相关标签/搜索