<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>

          CPU 以及內存從哪些方面影響 MySQL 性能?

          共 1693字,需瀏覽 4分鐘

           ·

          2021-07-04 20:27

          松哥原創(chuàng)的 Spring Boot 視頻教程已經(jīng)殺青,感興趣的小伙伴戳這里-->Spring Boot+Vue+微人事視頻教程


          影響 MySQL 性能的因素很多,今天咱們來看看 CPU 和內存是如何影響 MySQL 性能的,以及我們在購買服務器的時候,該如何挑選這些配置。

          CPU

          在挑選數(shù)據(jù)庫服務器的時候,是買多核 CPU 還是高主頻 CPU?相信有小伙伴可能遇到過類似的問題,作為開發(fā)工程師,公司負責采購的小伙伴可能會向我們拋出上面這個問題,那么該如何回答呢?

          有人說我既要多核又要高主頻,抱歉,很多時候公司的預算都是有限的,沒法做到魚與熊掌兼得。這個時候我們就需要了解一點 MySQL 的運行機制了,根據(jù) MySQL 的運行機制來確定到底該選什么樣的 CPU!

          首先我們要看我們的應用是不是 CPU 密集型,即是不是計算密集型。如果是 CPU 密集型應用,那么我們要加快 SQL 語句的處理速度,這個時候 CPU 的頻率顯然就比核數(shù)重要了。另外,MySQL 不支持多 CPU 對同一 SQL 并發(fā)處理,也就是說,不管 CPU 多強或多弱,我們只能用一個 CPU 核心來處理這一條 SQL,多個 CPU 對提高一個 SQL 的處理效率是沒有幫助的。

          如果我們要提高系統(tǒng)的并發(fā)量,這個時候就要考慮 CPU 的核數(shù)問題了。多個 CPU 雖然無法提高一條 SQL 的執(zhí)行效率,但是可以提高 SQL 的并發(fā)量,在同一時間,一個 CPU 可以處理一條 SQL,那么要是有 10 個 CPU 就可以同時處理 10 條 SQL,這樣就可以有效提高 QPS。

          現(xiàn)在小伙伴們出去找工作,很多互聯(lián)網(wǎng)公司都是用的 MySQL,這種互聯(lián)網(wǎng)應用最大的特征就是高并發(fā),那么毫無疑問,對于這種應用,我們應該考慮多核 CPU。

          老版本的 MySQL 對于多核 CPU 的支持并不完美,所以如果我們選擇多核 CPU,應該考慮使用目前最新版的 MySQL,最新版的 MySQL 對多核 CPU 的支持更加流暢。

          另外大家還需要注意不要在 64 位的 CPU 上運行 32 位的服務器。

          內存

          內存的磁盤 IO 肯定是大于硬盤的,所以如果能將數(shù)據(jù)緩存在內存中,這樣就不用每次去硬盤中讀取數(shù)據(jù)了,這樣的話,數(shù)據(jù)庫的效率必然還要再提升一個臺階。

          內存對數(shù)據(jù)庫性能的影響有兩方面:

          1. 讀取效率,從內存中讀取數(shù)據(jù)肯定比從硬盤中讀取數(shù)據(jù)要快。
          2. 寫入效率,當內存比較大的時候,我們需要往硬盤中寫數(shù)據(jù)的時候,就不用每次都寫,可以先緩存著,攢夠了再一次性寫入(延緩寫入)。

          不過我們也不能盲目的加內存,還是要在了解 MySQL 運行機制的前提下,合理加內存。

          以常見的 MyISAM 和 InnoDB 存儲引擎為例:

          • MyISAM 會將索引存入緩存,而數(shù)據(jù)存儲交由操作系統(tǒng)處理。
          • InnoDB 會同時在內存中緩存數(shù)據(jù)和索引,從而提高數(shù)據(jù)庫的運行效率。

          所以,如果我們選擇不同的存儲引擎,對內存的要求也是不一樣的。

          另一方面需要注意,生產服務器的內存一般都比較大,如果服務器的內存是 128G,數(shù)據(jù)庫文件只有 50G,此時發(fā)現(xiàn)數(shù)據(jù)庫運行很慢,那么很明顯,這個時候加內存肯定是無法解決問題的,還是要具體問題具體分析。

          另外在選擇內存時選擇服務器主板支持的最大內存頻率,盡量不要選擇不同品牌的內存混用;如果需要多個內存條,要確保不同內存條的頻率、電壓、校驗技術、型號等相同,同時單個內存條容量也要盡可能大(不過話說回來,如果購買云服務器,可能并不需要考慮這些)。

          好啦,今天就和小伙伴們隨便扯一扯,當然影響 MySQL 性能的還有其他因素,咱們后面接著聊。

          推薦閱讀:
          億級系統(tǒng)的Redis緩存如何設計
          學會這10個設計原則,離架構師又進了一步
          Spring Boot 集成 Kafka

          互聯(lián)網(wǎng)全棧架構,。

          瀏覽 98
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  一区二区三区四区视频 | 成人黄色AV网址 | 看国产黄色视频 | 国产成人视频免费观看 | A片一A片|