io模型,mysql
多路复⽤IO(IO multiplexing)
多路复⽤就是调⽤select来统⼀管理多个连接
强调:
1. 如果处理的连接数不是很⾼的话,使⽤select/epoll的web server不⼀定⽐使⽤multi-threading + blocking IO的web server性能更好,可能延迟还更⼤。select/epoll的优势并不是对于单个连接能处理得更快,⽽是在于能处理更多的连接。
2. 在多路复⽤模型中,对于每⼀个socket,⼀般都设置成为non-blocking,但是,如上图所⽰,整个⽤户的process其实是⼀直被block 的。只不过process是被select这个函数block,⽽不是被socket IO给block。
结论:select的优势在于可以处理多个连接,不适⽤于单个连接
异步IO(Asynchronous I/O)
⽤户进程发起read操作之后,⽴刻就可以开始去做其它的事。⽽另⼀⽅⾯,从kernel的⾓度,当它受到⼀个asynchronous read之后,⾸先它会⽴刻返回,所以不会对⽤户进程产⽣任何block。然后,kernel会等待数据准备完成,然后将数据拷贝到⽤户内存,当这⼀切都完成之后,kernel会给⽤户进程发送⼀个signal,告诉它read操作完成了。
数据库
1.数据库是什么?
数据库本质就是⼀个C/S的套接字软件
常见的数据库:
关系型:mysql(与mariadb相似)、oracle、db2、sqlserver
⾮关系型:存取数据都是以key:value形式
常见有mongodb、redis、memcache
2.数据库相关概念:
mongodb和mysql结合
数据库服务器:运⾏有数据库管理软件的计算机
数据库管理软件(如mysql):⼀个套接字服务器
库:就是⼀个⽂件夹
表:就是⼀个⽂件
记录:⽂件中⼀⾏内容(抽取事物⼀系列典型的特征拼到⼀起)
数据:⽤于记录现实世界中的某种状态

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。