中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
數(shù)據(jù)庫(kù) | 001-MySQL梳理系列(一)

MySQL基本組成

SQL執(zhí)行流程

  • Server 層主要包括連接器、查詢(xún)緩存、分析器、優(yōu)化器、執(zhí)行器,包含了MySQL主要的很多核心功能,以及所有的內(nèi)置函數(shù)、存儲(chǔ)過(guò)程、觸發(fā)器、視圖等,其實(shí)就是所有跨存儲(chǔ)引擎的功能都是在這一層實(shí)現(xiàn)的

  • 存儲(chǔ)引擎層,主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取,是以插件的形式存在的 ,支持如 InnoDBMyISAM、Memory 等多個(gè)存儲(chǔ)引擎,現(xiàn)在默認(rèn)為 InnoDB

查詢(xún)緩存

  • 當(dāng)一個(gè)SQL執(zhí)行時(shí)首先會(huì)進(jìn)入查詢(xún)緩存

  • 查看之前是否執(zhí)行過(guò)該語(yǔ)句,如果執(zhí)行過(guò)則會(huì)以key-value的形式保存在緩存中,key是查詢(xún)語(yǔ)句,value是查詢(xún)結(jié)果

  • 如果緩存命中則直接返回結(jié)果,如果查詢(xún)語(yǔ)句不在緩存中繼續(xù)后面的流程

  • 大多數(shù)情況下我們不推薦使用查詢(xún)緩存,因?yàn)榫彺媸Х浅nl繁,只要一個(gè)更新,那么這個(gè)表上所有的緩存都會(huì)失效,吐過(guò)數(shù)據(jù)的更新比較多,那么緩沖命中的效率很低,不斷的在失效

  • 在MySQL中提供了參數(shù) query_cache_type 參數(shù)來(lái)設(shè)置,默認(rèn)是 DEMAND ,表示對(duì)默認(rèn)的SQL都不使用查詢(xún)緩存,如果要對(duì)特的語(yǔ)句進(jìn)行緩存查詢(xún),則可以使用 SQL_CACHE 來(lái)顯示的指定,如 select SQL_CACHE * from T where ID=1;

  • 在MySQL8.0 開(kāi)始,查詢(xún)緩存整個(gè)功能模塊已經(jīng)刪除掉不再擁有

分析器

  • 分析器主要包含詞法分析語(yǔ)法分析

  • 詞法分析主要分析一條SQL中各個(gè)字符串代表什么,比如 select 標(biāo)記出來(lái),這就是一個(gè)查詢(xún),在具體的表名,查詢(xún) 的字段等等全部分析出來(lái)

  • 語(yǔ)法分析主要是分析SQL語(yǔ)句是否符合MySQL的規(guī)范,如果我們SQL寫(xiě)的有問(wèn)題,那么經(jīng)??吹降囊粋€(gè)異常就是 You have an error in your SQL syntax 的提示

優(yōu)化器

  • 對(duì)我們的SQL進(jìn)行優(yōu)化,得到更高的執(zhí)行計(jì)劃

  • 如有多個(gè)索引時(shí)確定要用那個(gè)索引

  • 當(dāng)有多變聯(lián)查join 時(shí),查詢(xún)表的順序

  • 對(duì)查詢(xún)條件和語(yǔ)句的優(yōu)化

執(zhí)行器

  • 首先校驗(yàn)是否有對(duì)這張表的訪(fǎng)問(wèn)權(quán)限,如果沒(méi)有權(quán)限則會(huì)報(bào)錯(cuò)

  • 如果有,則根據(jù)引擎接口打開(kāi)表進(jìn)行數(shù)據(jù)的查詢(xún)篩選

Buffer Pool

  • 默認(rèn)大小128MB, 偏小

  • 對(duì)于16核32G機(jī)器,可以分配2G內(nèi)存,配置文件:my.ini 配置:

[server]
innodb_buffer_pool_size = 2147483648

數(shù)據(jù)頁(yè)

  • MySQL中對(duì)數(shù)據(jù)進(jìn)行抽象,按照數(shù)據(jù)頁(yè)的形式來(lái)存放到文件,當(dāng)查詢(xún)時(shí),首先定位到要查詢(xún)數(shù)據(jù)所在的數(shù)據(jù)頁(yè),之后將整個(gè)數(shù)據(jù)頁(yè)加載到Buffer Pool 中,

  • 數(shù)據(jù)頁(yè)默認(rèn)的大小是 16KB , 也就是一頁(yè)數(shù)據(jù)包含16KB的數(shù)據(jù)

  • BufferPool 中的數(shù)據(jù)頁(yè)一般我們叫緩存頁(yè),默認(rèn)情況下緩存頁(yè)與磁盤(pán)上的數(shù)據(jù)頁(yè)大小是對(duì)應(yīng)的

  • 對(duì)于每個(gè)緩存頁(yè)都有一個(gè)描述信息

  • 描述信息包括:數(shù)據(jù)頁(yè)的所屬表空間,數(shù)據(jù)頁(yè)的標(biāo)號(hào),這個(gè)緩存頁(yè)在Buffer Pool 中的內(nèi)存地址以及其他一些信息

  • Buffer Pool 中,所有的描述信息都在最前面,然后各個(gè)緩存頁(yè)放在后面

  • 描述數(shù)據(jù)大小相當(dāng)于緩存頁(yè)大小的5% 左右,也就是大概800字節(jié),所以當(dāng)我們?cè)O(shè)置buffer pool 的大小為128MB ,但是實(shí)際上 Buffer Pool 的真實(shí)大小會(huì)超出一些,可能有有130MB 左右,這多出來(lái)的就是每個(gè)緩存頁(yè)的描述信息

表空間

  • 平時(shí)我們創(chuàng)建張表時(shí)都會(huì)在磁盤(pán)上對(duì)應(yīng)著一個(gè)表名.ibd , 這樣的磁盤(pán)數(shù)據(jù)文件,這就是表空間的概念和物理體現(xiàn)

  • 對(duì)于一些系統(tǒng)表空間可能存在著對(duì)應(yīng)多個(gè)磁盤(pán)文件,我們自己創(chuàng)建的表對(duì)應(yīng)的表空間一般都是對(duì)應(yīng)一個(gè) 表名.ibd 的數(shù)據(jù)文件

數(shù)據(jù)區(qū)

  • 在表空間中有太多的數(shù)據(jù)頁(yè)不好管理,這是引入了數(shù)據(jù)區(qū)的概念,英文:extent

  • 一個(gè)數(shù)據(jù)區(qū)中有連續(xù)的64個(gè)數(shù)據(jù)頁(yè),每個(gè)數(shù)據(jù)頁(yè)16kb, 所以每個(gè)數(shù)據(jù)區(qū)大小是1MB

  • 同時(shí)265個(gè)數(shù)據(jù)區(qū)被劃分為一組

  • 在表空間中第一組數(shù)據(jù)區(qū)的第一個(gè)數(shù)據(jù)區(qū)前三個(gè)數(shù)據(jù)頁(yè)是固定的,存放一些特殊的描述性的信息

    • FSP_HDR 數(shù)據(jù)頁(yè): 存放一些表空間和這一組數(shù)據(jù)區(qū)的屬性

    • IBUF——BITMAP 數(shù)據(jù)頁(yè):存放這組數(shù)據(jù)頁(yè)所有的 insert buffer 的一些信息

    • INODE 數(shù)據(jù)頁(yè):存放一些特殊信息

  • 表空間中其他各組數(shù)據(jù)區(qū)的第一個(gè)數(shù)據(jù)區(qū)的頭兩個(gè)數(shù)據(jù)頁(yè)都是存放特殊信息的


本文由AnonyStar 發(fā)布,可轉(zhuǎn)載但需聲明原文出處。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
什么是數(shù)據(jù)庫(kù)的“緩存池”?(萬(wàn)字長(zhǎng)文,絕對(duì)干貨)
超詳細(xì)的MySQL工作原理 體系結(jié)構(gòu)
詳解MySQL大表優(yōu)化方案
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服