北京網(wǎng)站制作官網(wǎng)分銷渠道
MySql
連接池:的兩個(gè)參數(shù)
最大連接數(shù):可以同時(shí)發(fā)起的最大連接數(shù)
單次最大數(shù)據(jù)報(bào)文:接受數(shù)據(jù)報(bào)文的最大長(zhǎng)度
數(shù)據(jù)庫(kù)如何存儲(chǔ)數(shù)據(jù)
存儲(chǔ)引擎:
? ? InnoDB:通過執(zhí)行器對(duì)內(nèi)存和磁盤的數(shù)據(jù)進(jìn)行寫入和讀出
- 優(yōu)化SQL語(yǔ)句
- innoDB會(huì)把需要寫入或者更新的數(shù)據(jù)寫入Bu方法二POOL中
- 程序員通過執(zhí)行器連接BufferPool?同時(shí)將之前的數(shù)據(jù)記錄到Undo Log日志文件中
- 線程將需要更新寫入的數(shù)據(jù)讀出后寫入磁盤?這個(gè)過程通過 OPean+write函數(shù)構(gòu)成
- 為了防止突然斷電數(shù)據(jù)丟失?在讀入數(shù)據(jù)時(shí)會(huì)象Redo Log Buffer中寫入一份相同的數(shù)據(jù)。然后再將其刷到磁盤中
- ?寫入成功后BingLog會(huì)向RedoLog告知寫入完畢的事
3? Mysal如何保管數(shù)據(jù)
數(shù)據(jù)在數(shù)據(jù)庫(kù)中以磁盤和內(nèi)存兩種形式存在
磁盤:建表后innoDB會(huì)在磁盤的目錄下創(chuàng)建于這個(gè)表對(duì)應(yīng)的兩個(gè)文件t.frm(存儲(chǔ)表結(jié)構(gòu)) t.ibd(表空間:用來存儲(chǔ)數(shù)據(jù)和索引)表中的最小單位是頁(yè)這也是與磁盤交互的最小單位,頁(yè)大小 16kb
?4? MySql如何查詢數(shù)據(jù)
- 客戶端通過連接驅(qū)動(dòng)和連接池連接,客戶端向連接池發(fā)送一個(gè)單獨(dú)的數(shù)據(jù)包,同時(shí)傳輸數(shù)據(jù)包的大小是有上限的
- 接受到sql后在查詢緩存的地方查找(8.0后被刪除)
- 查詢緩存中沒有就通過sql解析器來解析sql語(yǔ)句
- 解析后的sql會(huì)被提交給預(yù)處理器,優(yōu)化器優(yōu)化?優(yōu)化后sql就會(huì)變成呢一個(gè)可以執(zhí)行的執(zhí)行計(jì)劃
- 執(zhí)行器?根據(jù)執(zhí)行計(jì)劃?在Handler API中查找相應(yīng)的API,同時(shí)進(jìn)行組合和調(diào)用達(dá)成執(zhí)行計(jì)劃(優(yōu)化器會(huì)通過Handle實(shí)例來獲取表和列等信息),調(diào)用Api來拿到返回結(jié)果。
?頁(yè)
數(shù)據(jù)頁(yè)
結(jié)構(gòu):頁(yè)頭頁(yè)尾?數(shù)據(jù)行
?數(shù)據(jù)行:會(huì)直接與表中的數(shù)據(jù)行相對(duì)應(yīng)
?