多路IO復用,mysql簡介

2021-08-21 13:40:53 字數 1209 閱讀 6822

一:io多路復用

io multiplexing這個詞可能有點陌生,但是如果我說select/epoll,大概就都能明白了。有些地方也稱這種io方式為事件驅動          io(event driven io)。我們都知道,select/epoll的好處就在於單個process就可以同時處理多個網路連線的io。它的基本原理        就是select/epoll這個function會不斷的輪詢所負責的所有socket,當某個socket有資料到達了,就通知使用者程序。它的流程如        圖

當使用者程序呼叫了select,那麼整個程序會被block,而同時,kernel會「監視」所有select負責的socket,當任何乙個socket中的資料準備好了,select就會返回。這個時候使用者程序再呼叫read操作,將資料從kernel拷貝到使用者程序。

這個圖和blocking io的圖其實並沒有太大的不同,事實上還更差一些。因為這裡需要使用兩個系統呼叫(select和recvfrom),而blocking io只呼叫了乙個系統呼叫(recvfrom)。但是,用select的優勢在於它可以同時處理多個connection。

二:非同步io模型

三:mysql簡介

2、資料庫相關概念

資料庫伺服器:執行有資料庫管理軟體的計算機

資料庫管理軟體mysql:就是乙個套接字服務端

庫:就是乙個資料夾

表:就是乙個檔案

記錄:就相當於檔案中的一行內容(抽取事物一系列典型的特徵拼到一起,)

資料:用於記錄現實世界中的某種狀態

io多路復用簡介

redis之所以可以高效的執行命令,單執行緒每秒qps達到10w左右,是因為起io多路復用技術效率很高。io多路復用解決了什麼問題?沒有io多路復用,那麼當伺服器操作某乙個fd執行read的時候,如果fd對應的客戶端沒有執行寫操作,那麼服務端就會阻塞,這個時候客戶端2來了資料,服務端就沒辦法讀取了 ...

I O多路復用

一 五種i o模型 1 阻塞i o模型 最流行的i o模型是阻塞i o模型,預設情形下,所有套介面都是阻塞的。我們以資料報套介面為例來講解此模型 我們使用udp而不是tcp作為例子的原因在於就udp而言,資料準備好讀取的概念比較簡單 要麼整個資料報已經收到,要麼還沒有。然而對於tcp來說,諸如套介面...

i o多路復用

最常見的i o多路復用就是 select poll epoll了,下面說說他們的一些特點和區別吧。select 可讀 可寫 異常三種檔案描述符集的申明和初始化。fd set readfds,writefds,exceptionfds fd zero readfds fd zero writefds ...