<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MySQL Server 性能優(yōu)化

          共 2485字,需瀏覽 5分鐘

           ·

          2022-11-21 10:45

          前言:

          本章主要通過針對 MySQL Server(mysqld)相關(guān)實現(xiàn)機制的分析,得到一些相應(yīng)的優(yōu)化建議。主要涉及 MySQL 的安裝以及相關(guān)參數(shù)設(shè)置的優(yōu)化,但不包括 mysqld 之外的比如存儲引擎相關(guān)的參數(shù)優(yōu)化,存儲引擎的相關(guān)參數(shù)設(shè)置建議將主要在下一章“常用存儲引擎的優(yōu)化”中進行說明。

          MySQL安裝優(yōu)化

          選擇合適的發(fā)行版本

          1. 二進制發(fā)行版(包括 RPM 等包裝好的特定二進制版本)

          由于 MySQL 開源的特性,不僅僅 MySQL AB 提供了多個平臺上面的多種二進制發(fā)行版本可以供大家選擇,還有不少第三方公司(或者個人)也給我們提供了不少選擇。使用 MySQL AB 提供的二進制發(fā)行版本我們可以得到哪些好處?

          a) 通過非常簡單的安裝方式快速完成 MySQL 的部署;

          b)安裝版本是經(jīng)過比較完善的功能和性能測試的編譯版本;

          c) 所使用的編譯參數(shù)更具通用性的,且比較穩(wěn)定;

          d) 如果購買了 MySQL 的服務(wù),將能最大程度的得到 MySQL 的技術(shù)支持;

          第三方提供的 MySQL 發(fā)行版本大多是在 MySQL AB 官方提供的源代碼方面做了或多或少的針對性改動,然后再編譯而成。這些改動有些是在某些功能上面的改進,也有些是在某寫操作的性能方面的改進。還有些由各OS 廠商所提供的發(fā)行版本,則可能是在有些代碼方面針對自己的OS 做了一些相應(yīng)的底層調(diào)用的調(diào)整,以使 MySQL 與自己的 OS 能夠更完美的結(jié)合。當然,也有一些第三方發(fā)行版本并沒有動過MySQL 一行代碼,僅僅只是在編譯參數(shù)方面做了一些相關(guān)的調(diào)整,而讓 MySQL 在某些特定場景下表現(xiàn)更優(yōu)秀。

          這樣一說,聽起來好像第三方發(fā)行的 MySQL 二進制版本要比 MySQL AB 官方提供的二進制發(fā)行版有更大的吸引力,那么我們是否就應(yīng)該選用第三方提供的二進制發(fā)行版呢?先別著急,我們還需要進一步分析一下第三方發(fā)行版本可能存在哪些問題。

          首先,由于第三方發(fā)行版本對 MySQL 所做的改動,很多都是為了應(yīng)對發(fā)行者自己所處的特定場景而做出來的。所以,第三方發(fā)行版本并不一定適合其他所有使用者所處的環(huán)境。

          其次,由于第三方發(fā)行版本的發(fā)行者并一定都是一個足夠讓人信任的公司(或者個人),在其生成自己的發(fā)行版本之前,是否有做過足夠全面的功能和性能測試我們不得而知,在我們使用的時候是否會出現(xiàn) MySQL AB 官方的發(fā)行版本中并不存在的 bug?

          最后,如果我們購買了 MySQL 的相關(guān)服務(wù),而又使用了第三方的發(fā)行版本,當我們的系統(tǒng)出現(xiàn)問題的時候,恐怕 MySQL 的支持工程師的支持工作會大打折扣,甚至可能會拒絕提供支持。

          如果大家可以完全拋開以上這些可能存在隱患的顧慮,完全可以嘗試使用非 MySQL AB 官方提供的二進制版本,而選用可能具有更多特性或者更高性能的發(fā)行版本了。

          之前我也對網(wǎng)絡(luò)上各種第三方二進制分發(fā)版本做過一些測試和比較,也發(fā)現(xiàn)了一些比較不錯的版本,如 Percona 在整合了一些比較優(yōu)秀的 Patch 之后的發(fā)行版本整體質(zhì)量都還不錯,使用者也比較多。

          當然,Percona 不僅僅分發(fā)二進制版本,同時也分發(fā)整合了一些優(yōu)秀 Patch 的源碼包。對于希望使Percona 提供的一些 Patch 的朋友,同時又希望能夠自行編譯以進一步優(yōu)化和定制 MySQL 的朋友,也可以載 Percona 提供的源碼包。

          對于二進制分發(fā)版本的安裝,對于安裝本身來說,我們基本上沒有太多可以優(yōu)化的地方,唯一可以做的就是當我們決定了選擇第三方分發(fā)版本之后,可以根據(jù)自身環(huán)境和應(yīng)用特點來選擇適合我們環(huán)境的優(yōu)化發(fā)行版本來安裝。2. 源碼安裝與二進制發(fā)行版本相比,如果我們選擇了通過源代碼進行安裝,那么在安裝過程中我們能夠?qū)?MySQL所做的調(diào)整將會更多更靈活一些。因為通過源代碼編譯我們可以:

          a) 針對自己的硬件平臺選用合適的編譯器來優(yōu)化編譯后的二進制代碼;

          b) 根據(jù)不同的軟件平臺環(huán)境調(diào)整相關(guān)的編譯參數(shù);

          c) 針對我們特定應(yīng)用場景選擇需要什么組件不需要什么組件;

          d) 根據(jù)我們的所需要存儲的數(shù)據(jù)內(nèi)容選擇只安裝我們需要的字符集;

          e)同一臺主機上面可以安裝多個 MySQL;

          f) 等等其他一些可以根據(jù)特定應(yīng)用場景所作的各種調(diào)整。

          在源碼安裝給我們帶來更大靈活性的同時,同樣也給我們帶來了可能引入的隱患:

          a) 對編譯參數(shù)的不夠了解造成編譯參數(shù)使用不當可能使編譯出來的二進制代碼不夠穩(wěn)定;

          b) 對自己的應(yīng)用環(huán)境把握失誤而使用的優(yōu)化參數(shù)可能反而使系統(tǒng)性能更差;

          c) 還有一個并不能稱之為隱患的小問題就是源碼編譯安裝將使安裝部署過程更為復(fù)雜,所花費的時間更長;

          通過源碼安裝的最大特點就是可以讓我們自行調(diào)整編譯參數(shù),最大程度的定制安裝結(jié)果。下面我將自己在通過源碼編譯安裝中的一些優(yōu)化心得做一個簡單的介紹,希望能夠?qū)Υ蠹矣兴鶐椭?/span>

          在通過源碼安裝的時候,最關(guān)鍵的一步就是配置編譯參數(shù),也就是執(zhí)行通過 configure 命令所設(shè)定的各種編譯選項。我們可以在 MySQL 源碼所在的文件夾下面通過執(zhí)行執(zhí)行“./configure —help”得到可以設(shè)置的所有編譯參數(shù)選項,如下:

          上面的輸出內(nèi)容中很多都已經(jīng)省略了,大家完全可以通過自行測試得到更為豐富的內(nèi)容輸出。下面針對幾個比較重要的編譯參數(shù)做一個簡單的介紹:

          們在安裝的時候可以定制自己的系統(tǒng),讓系統(tǒng)更適合我們自己應(yīng)用環(huán)境的相關(guān)規(guī)范,做到環(huán)境統(tǒng)一,并按照實際需求生成相應(yīng)的二進制代碼。而后面的一些參數(shù)主要是用來優(yōu)化編譯結(jié)果的。我想大家應(yīng)該都能理解一般來說,一個系統(tǒng)功能越復(fù)雜,其性能一般都會越差。所以,在我們安裝編譯 MySQL 的時候應(yīng)該盡量只選用我們需要的組件,僅安裝我們需要的存儲引擎,僅編譯我們需要的字符集,讓我們的系統(tǒng)能夠盡可能的簡單,因為這樣的 MySQL 也會給我們帶來盡可能高的性能。

          此外,對于一些特定的軟件環(huán)境上,可能會有多種線程庫的選擇的,如果你對各個線程庫較為了解,完全可以通過編譯參數(shù)設(shè)定讓MySQL使用最合適的線程庫,讓MySQL 在我們特定的環(huán)境中發(fā)揮他最優(yōu)化的一面。


          瀏覽 33
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91cn.xx | 九九九视频完整版 | 清纯唯美亚洲第一页麻豆豆花 | www.操b | 久久久黄色免费视频 |