zoukankan      html  css  js  c++  java
  • 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.数据库相关概念:

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

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

             库:就是一个文件夹

             表:就是一个文件

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

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

  • 相关阅读:
    使用idea进行远程调试
    map根据属性排序、取出map前n个
    编写shell脚本一键启动 重启 停止springboot jar包
    IDEA给类和方法配置注释模板(参数换行显示)
    springboot文件上传报错
    WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南
    WebMvcConfigurerAdapter详解和过时后的替代方案
    springboot上传文件过大,全局异常捕获,客户端没有返回值
    javascript中Math.random()产生随机数总结
    关于微信中的localStorage及使用cookie的解决方案
  • 原文地址:https://www.cnblogs.com/luck-L/p/9332511.html
Copyright © 2011-2022 走看看