溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL原理與優(yōu)化的案例分析

發(fā)布時間:2020-12-01 14:02:21 來源:億速云 閱讀:112 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹MySQL原理與優(yōu)化的案例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

MySQL是目前互聯(lián)網(wǎng)公司應用最廣泛的數(shù)據(jù)庫軟件(DBMS),沒有之一。小至初創(chuàng)公司,大至BAT,GOOGLE,F(xiàn)ACEBOOK都在自己的業(yè)務中大量的使用MySQL作為數(shù)據(jù)存儲。阿里云也提供了MySQL的云版本——云數(shù)據(jù)庫RDS MySQL版。這一系列的文章希望能幫助大家更好的了解MySQL,更好的發(fā)揮數(shù)據(jù)庫的性能,讓我們的數(shù)據(jù)存儲更有效率。

MySQL的歷史

MySQL是一個開源的自由軟件,我們可以在網(wǎng)上直接獲取到它的源碼。至今為止MySQL已經(jīng)有超過20年的歷史,大體的里程碑事件如下:

● 1996年,MySQL 1.0發(fā)布,它只面向一小撥人。到了1996年10月,MySQL 3.11.1發(fā)布(MySQL沒有2.x版本),最開始只提供Solaris下的二進制版本。一個月后,Linux版本出現(xiàn)了。在接下來的兩年里,MySQL被依次移植到各個平臺。

● 1999~2000年,MySQL AB公司在瑞典成立,開發(fā)出了Berkeley DB引擎, 由于BDB支持事務處理,因此MySQL從此開始支持事務處理了。

● 2001年 V3.23:MyISAM引擎,以及Innodb引擎雛形

● 2003年 V4.0:新的語法特性,Innodb成為標準組件,加入query_cache

● 2006年 V5.0:視圖,觸發(fā)器,存儲過程等功能加入

● 2008年 V5.1:分區(qū),行復制

● 2010年 V5.5:Innodb成為默認引擎,半同步復制

● V5.6 Innodb改進,復制功能等提升

● V5.7 加入mariaDB等新的存儲引擎

MySQL的體系架構(gòu)

MySQL并沒有和同時期數(shù)據(jù)庫的一樣,而是采用了自己獨特的架構(gòu)。這個架構(gòu)我們可以用唐代詩人杜牧的一首著名的詩句來理解:

長安回望繡成堆,山頂千門次第開。 一騎紅塵妃子笑,無人知是荔枝來。

這里面有三個角色:

MySQL原理與優(yōu)化的案例分析

● 妃子:負責提出需求,要吃荔枝

大臣:負責安排采摘荔枝,走哪條路徑,發(fā)放公文等

快遞員:負責運送荔枝

這就對應MySQL體系結(jié)構(gòu)中的三個角色:客戶端,處理引擎,執(zhí)行引擎

MySQL原理與優(yōu)化的案例分析

用體系架構(gòu)圖來表示就是這樣的

MySQL原理與優(yōu)化的案例分析

● 客戶端

相當于妃子的角色:用戶操作客戶端來發(fā)出查詢、修改、添加、刪除數(shù)據(jù)的需求

● 處理引擎

處理引擎相當于大臣的角色,負責解析SQL語句,生成執(zhí)行計劃。除此之外,還負責有以下責任,我們在優(yōu)化時可以注意:

? 負責管理連接與線程:使用了多線程模型,設置thread_cache_size可以利用已有線程

? 負責管理query cache:利用現(xiàn)成結(jié)果,直接緩存結(jié)果集,測試語句性能時需要用 sql_no_cache hint 屏蔽

● 存儲引擎

存儲引擎相當于快遞員的角色,負責數(shù)據(jù)實際存儲以及數(shù)據(jù)的讀取,修改等操作。不同的存儲引擎,在實際的執(zhí)行中會表現(xiàn)出不同的特性。在后面的文章會詳細展開介紹。

以上是“MySQL原理與優(yōu)化的案例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI