




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2019/9/7 2019/9/72、MySQLB二查詢性能優(yōu)化1Explain如何做MySQL的性能優(yōu)化?三引四數(shù)據(jù)類型3、 策六MyISAM和InnoDB引擎使用的鎖InnoDB引擎的鎖的算法有三種1、SQL語(yǔ)句的執(zhí)行順序3、MySQLCPU500%十、SQL語(yǔ)句 1、BBTree指的是BalanceTree,也就是平衡樹(shù)。平衡樹(shù)是一顆查找樹(shù),并且所有葉子節(jié)B+樹(shù)是基于B樹(shù)和葉子節(jié)點(diǎn)順序指針進(jìn)行實(shí)現(xiàn),它具有B樹(shù)的平衡性,并且通在B+樹(shù)中,一個(gè)節(jié)點(diǎn)中的key從左到右非遞減排列,如果某個(gè)指針的左右相鄰keykeyikeyi+1nullkeykeyi于等于keyi+1。進(jìn)行查找操作時(shí),首先在根節(jié)點(diǎn)進(jìn)行二分查找,找到一個(gè) 所在的指針,然后遞歸keydata、刪除操作會(huì)破壞平衡樹(shù)的平衡性,因此在刪除操作之后,需要對(duì)樹(shù)進(jìn)行一BhO(h)=O(logdNd樹(shù)的出度為2,而B(niǎo)+Tree的出度一般都非常大,所以樹(shù)的樹(shù)高h(yuǎn)很明顯B+Tree大非常多,查找的次數(shù)也就為了減少磁盤(pán)I/O操作,磁盤(pán)往往不是嚴(yán)格按需,而是每次都會(huì)預(yù)讀。預(yù)讀過(guò)程為單位交換數(shù)據(jù)。數(shù)據(jù)庫(kù)系統(tǒng)將索引的一個(gè)節(jié)點(diǎn)的大小設(shè)置為頁(yè)的大小,使得一次I/O就BInDB的+adataB+TreeKey其data域的值,然后以data域的值為地址相應(yīng)的數(shù)據(jù)記錄。這被稱為“非聚InnoDB:其數(shù)據(jù)文件本身就是索引文件。相比MyISAM的索引文件和數(shù)據(jù)文件是分離的,其表數(shù)據(jù)文件本身就是按B+Tree組織的一個(gè)索引結(jié)構(gòu),樹(shù)的葉節(jié)點(diǎn)data域保存了完整的數(shù)據(jù)記錄。這個(gè)索引的key是數(shù)據(jù)表的主鍵,因此InnoDB表數(shù)據(jù)文助索引,輔助索引的data域相應(yīng)記錄主鍵的值而不是地址,這也是和MyISAM不同的地方。在根據(jù)主索引搜索時(shí),直接找到key所在的節(jié)點(diǎn)即可取出數(shù)據(jù);在根InnoDB引擎有一個(gè)特殊的功能叫“自適應(yīng)哈希索引”,當(dāng)某個(gè)索引值被使用的BB+TreeMATCHAGAINSTWHEREInnoDB引擎在MySQL5.6.4版本中也開(kāi)始支持全文索引2.4.MyISAM引擎支持空間數(shù)據(jù)索引(R-Tree),可以用于地理數(shù)據(jù)??臻g數(shù)據(jù)必須使用GIS相關(guān)的函數(shù)來(lái)數(shù)據(jù)actor_idfilm_idWHEREactor_id=1ANDfilm_id=1;1,此時(shí)每個(gè)記錄FROMBLOB、TEXTVARCHAR—些引擎(例如 MyISAM)在內(nèi)存中只緩存索引,而數(shù)據(jù)依賴于操作系統(tǒng)來(lái)緩 2、幫助服務(wù)器避免進(jìn)行排序和分組,以及避免創(chuàng)建臨時(shí)表(BORDERBYGROUPBYSQLSELECTSELECT*FROM`houdunwang`WHERE`uname`LIKE走索SELECT*FROM`houdunwang`WHERE`uname`LIKE不走索EXPLAINSELECT*FROM`a`WHERE`a`="1"走索同樣也是使用了函數(shù)運(yùn) 7、MySQL優(yōu)化器會(huì)對(duì)SQL語(yǔ)句進(jìn)行優(yōu)化,如果優(yōu)化器估計(jì)使用全表掃描要比使用二查詢性能優(yōu)1ExplainMySQLSQL2、type:類型【 查詢優(yōu)化的一個(gè)重要指標(biāo)】結(jié)果值從好到壞依次是system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALLsystem:表只有一行記錄(等于系統(tǒng)表),這是const類型的特例,平時(shí)不會(huì)出constconstprimarykeyuniquewheremysql該查詢轉(zhuǎn)換為一個(gè)const;鍵或唯一索引掃描;range:只檢索給定范圍的行,使用一個(gè)索引來(lái)選擇行。key列顯示使用了那個(gè)索indexFullIndexScan,indexALLindexALL快,應(yīng)為索引文件通常比數(shù)據(jù)文件小。(index與ALL雖然都是讀全表,但index是從索引中,而ALL是從硬盤(pán))ALL:FullTableScan3、key:使用的索引,如果為NULL,則沒(méi)有使用索引;4、 掃描的行數(shù)Explain命令詳解 1SELECT*do{LIMIT10000")以讓MySQL按照ID順序進(jìn)行查詢,這可能比隨機(jī)的連接要更高效。SELECTSELECT*FROMJOINpostONtag_post.post_id=post.idWHEREtag.tag='mysql';SELECTSELECT*FROMtagWHEREtag='mysql';MySQL問(wèn)題排查都有哪些2explainSQLMySQL2select*三引實(shí)現(xiàn)了四個(gè)標(biāo)準(zhǔn)的級(jí)別,默認(rèn)級(jí)別是:可重復(fù)讀(REPEATABLEREAD)。在可(CONCURRENTINSERT)。2、并發(fā):MyISAMInnoDB5、恢復(fù):MyISAM后發(fā)生損壞的概率比InnoDB高很多,而且恢復(fù)的速度也更2selectcount*據(jù)類TINYINTSMALLINTMEDIUMINTINTBIGINT81624,32,64FLOATDOUBLEDECIMALCPU運(yùn)算,但是不支持DECIMAl類型的計(jì)算,因此DECIMAL的計(jì)算比浮點(diǎn)類型需要更高的FLOAT、DOUBLEDECIMALDECIMAL(18,918位,取9位小數(shù)部分,剩下9位整數(shù)部分CHARVARCHARVARRUPDATE 時(shí)可能會(huì)使行變得比原來(lái)長(zhǎng),當(dāng)超出一個(gè)頁(yè)所能容納的大小時(shí),就要執(zhí)行額外的操作。IAM會(huì)將行成不同片段,而InoDB需來(lái)行進(jìn)內(nèi)在進(jìn)行和檢索時(shí),會(huì)保留VARCHAR末尾的空格,而會(huì)刪除CHAR末尾的varchar(505050,varchar(50varchar(200)o所占空間一樣,但后者在排序時(shí)會(huì)消耗內(nèi)存,因?yàn)閛rderbycol采用fixed_length計(jì)算col長(zhǎng)度。MySQLDATETIMETIMESTAMP能夠保存從1001年到9999年的日期和時(shí)間,精度為秒,使用8字節(jié)的空間。默認(rèn)情況下,MySQLDATETIME如“2008-01-1622:37:08ANSI和UNIX時(shí)間戳相同,保存從1970年1月1日午夜(時(shí)間)以來(lái)的秒數(shù),使用4個(gè)字節(jié),只能表示從1970年到2038年。UNIX_TIMESTAMPUNIX水平切分又稱為Sharding,它是將同一個(gè)表中的記錄拆分到多個(gè)結(jié)構(gòu)相同的表中。 XAID使用全局唯—分布式ID( 的Snowflake算法六主要涉及三個(gè)線程:binlogI/OSQLSQL線程:負(fù)責(zé)重放日志并重放其中的SQL語(yǔ)句七、事
2、一致性 執(zhí)行事務(wù)前后,數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)轉(zhuǎn)換到另一個(gè)一致性狀態(tài)3、性: 并發(fā)數(shù)據(jù)庫(kù)時(shí),一個(gè)用戶的事物不被其他干擾,各并發(fā)事務(wù)之間4、持久性: 一個(gè)事務(wù)被提交之后。它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變是持久的,即使數(shù)據(jù)庫(kù) MITTED(未提交讀):最低的級(jí)別,允許尚未提交的數(shù)據(jù)變 MITTED(提交讀):允許并發(fā)事務(wù)已經(jīng)提交的數(shù)據(jù),可以臟據(jù)是被本身事務(wù)自己所修改,可以臟讀和不可重復(fù)讀,但幻讀仍有可能發(fā)生。入記錄A,此時(shí)該事務(wù)還未提交,然后另一個(gè)事務(wù)嘗試到了記錄A。不可重復(fù) :是指在一個(gè)事務(wù)內(nèi),多次讀同一數(shù)據(jù)幻讀:指同一個(gè)事務(wù)內(nèi)多次查詢返回的結(jié)果集不一樣。比如同一個(gè)事務(wù)Ann+1默認(rèn)采用的REPEATABLE_READ級(jí)別Oracle默認(rèn)采用 MITTED 所謂的MVCC(Multi-VersionConcurrencyControl,多版本并發(fā)控制)指的就是在使用READCOMMITTD、REPEATABLEREAD這兩種級(jí)別的事務(wù)在執(zhí)行普通的SEELCT操作時(shí)記錄的版本鏈的過(guò)程,這樣子可以使不同事務(wù)的讀-寫(xiě)、寫(xiě)-讀操作并發(fā)READCOMMITTD、REPEATABLEREAD這兩個(gè)級(jí)別的一個(gè)很大不同就是生成ReadViewREADCOMMITTDSELECT一個(gè)ReadView,而REPEATABLEREAD只在第一次進(jìn)行普通SELECT操作前生成一個(gè)ReadView,之后的查詢操作都重復(fù)這個(gè)ReadView就好了。八、鎖MyISAMtable-levellocking度最低,MyISAMInnoDB行級(jí)鎖:L的一種鎖,只針對(duì)當(dāng)前操作的行進(jìn)行加鎖。行級(jí)鎖能大大減少據(jù)庫(kù)操的其加鎖度最小并度高,但鎖的開(kāi)也最大加鎖將使用表鎖2、在你增刪改查時(shí),匹配的條件字段不帶有索引時(shí),InnoDBselect命令時(shí)觸發(fā)讀鎖,什么時(shí)候觸發(fā)寫(xiě)鎖,就是在你使用update、de
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 聘用協(xié)議變更三方協(xié)議書(shū)
- 離婚房產(chǎn)轉(zhuǎn)讓合同范本
- 泵車租賃設(shè)備合同范本
- 餐飲門(mén)面招租轉(zhuǎn)讓協(xié)議書(shū)
- 教育科技與教育工作者的發(fā)展規(guī)劃
- 退回土地承包合同范本
- 海珠個(gè)人食堂承包協(xié)議書(shū)
- 退休計(jì)劃如何提前布局
- 花磚更換協(xié)議書(shū)
- 外架合同轉(zhuǎn)讓協(xié)議書(shū)
- 服務(wù)器驗(yàn)收?qǐng)?bào)告
- 裝配式建筑設(shè)計(jì)施工總結(jié)PPT(127頁(yè))
- [安徽]高速公路改擴(kuò)建工程交通組織方案(155頁(yè))
- 張齊華:《平均數(shù)》課件
- 部編版四年級(jí)語(yǔ)文下冊(cè)第五單元復(fù)習(xí)教案設(shè)計(jì)
- 《鐵路線路里程斷鏈設(shè)置和管理規(guī)定》
- 土工布檢測(cè)報(bào)告土工布產(chǎn)品屬性
- 21世紀(jì)音樂(lè)教育發(fā)展趨勢(shì)——問(wèn)題與對(duì)策2004年音樂(lè)教育國(guó)際學(xué)術(shù)會(huì)議在上海音樂(lè)學(xué)院召開(kāi)
- 導(dǎo)流明渠混凝土施工方案
- 中國(guó)字-中國(guó)人-歌詞
- 客戶信用等級(jí)評(píng)定表(超實(shí)用)
評(píng)論
0/150
提交評(píng)論