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