<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg) ***** ## 什么是基準測試 基準測試是一種測量和評估軟件性能指標的活動用于建立某個時刻的性能基準,以便當系統發生軟硬件變化時重新進行基準測試以評估變化對性能的影響 <br>基準測試是針對系統設置的一種壓力測試 ### 基準測試特點 直接、簡單、易于比較,用于評估服務器的處理能力 <br>可能不關心業務邏輯,所使用的查詢和業務的真實性可以和業務環境沒關系 ### 壓力測試特點 - 對真實的業務數據進行測試,獲得真實系統所能承受的壓力 - 需要針對不同主題,所使用的數據和查詢也是真實用到的 - 基準測試是簡化了的壓力測試 ## 基準測試的目的 * 建立MySQL服務器的性能基準線,確定當前MySQL服務器運行情況,確定優化之后的效果 * 模擬比當前系統更高的負載,已找出系統的擴展瓶頸,可以增加數據庫并發,觀察QPS(每秒處理的查詢數),TPS(每秒處理的事務數)變化,確定并發量與性能最優的關系 * 測試不同的硬件、軟件和操作系統配置 * 證明新的硬件設備是否配置正確 ## 如何進行基準測試 ### 對整個系統進行基準測試 #### 優點 * 能夠測試整個系統的性能,包括web服務器緩存、數據庫等 * MySQL并不總是出現性能問題的瓶頸,如果只關注MySQL可能忽略其他問題,能反映出系統中各個組件接口間的性能問題體現真實性能狀況 #### 缺點 基準測試最重要的就是簡單,可能對不同的方案進行測試,找到最優的方案,基準測試進行的時間一定要短,否則就要花費大量的時間進行基準測試 * 測試設計復雜,消耗時間長 ### 對MySQL進行基準測試 #### 優點 * 測試設計簡單,所耗費時間短 #### 缺點 * 無法全面了解整個系統的性能基線 #### MySQL基準測試的常見指標 * 單位時間內處理的事務數(TPS) * 單位時間內處理的查詢數(QPS) ### MySQL基準測試工具 #### MySQL基準測試之mysqlslap * 可以模擬服務器負載,并輸出相關統計信息 #### 常用參數說明 * \--auto-generate-sql 由系統自動生成SQL腳本進行測試 * \--auto-generate-sql-add-autoincrement 在生成的表中增加自增ID * \--auto-generate-sql-load-type 指定測試中使用的查詢類型 讀寫或者混合,默認是混合 * \--auto-generate-sql-write-number 指定初始化數據時生成的數據量 * \--concurrency 指定并發線程的數量 1,10,50,200 * \--engine 指定要測試表的存儲引擎,可以用逗號分割多個存儲引擎 * \--no-drop 指定不清理測試數據 * \--iterations 指定測試運行的次數 指定了這個不能指定no-drop * \--number-of-queries 指定每一個線程執行的查詢數量 * \--debug-info 指定輸出額外的內存及CPU統計信息 * \--number-int-cols 指定測試表中包含的INT類型列的數量 * \--number-char-cols 指定測試表中包含的varchar類型的數量 * \--create-schema 指定了用于執行測試的數據庫的名字 * \--query 用于指定自定義SQL的腳本 * \--only-print 并不運行測試腳本,而是把生成的腳本打印出來 ~~~ mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=test ~~~ sysbench測試工具:[https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html](https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html) <table width="100%" class="table table-striped"><thead><tr><th></th><th>MyISAM</th><th>InnoDB</th></tr></thead><tbody><tr><td>存儲結構</td><td>每張表被存放在三個文件: <ol><li>frm-表格定義</li><li>MYD(MYData)-數據文件</li><li>MYI(MYIndex)-索引文件</li></ol></td><td>所有的表都保存在同一個數據文件中(也可能是多個文件,或者是獨立的表空間文件),InnoDB表的大小只受限于操作系統文件的大小,一般為2GB</td></tr><tr><td>存儲空間</td><td>MyISAM可被壓縮,存儲空間較小</td><td>InnoDB的表需要更多的內存和存儲,它會在主內存中建立其專用的緩沖池用于高速緩沖數據和索引</td></tr><tr><td>可移植性、備份及恢復</td><td>由于MyISAM的數據是以文件的形式存儲,所以在跨平臺的數據轉移中會很方便。在備份和恢復時可單獨針對某個表進行操作</td><td>免費的方案可以是拷貝數據文件、備份 binlog,或者用 mysqldump,在數據量達到幾十G的時候就相對痛苦了</td></tr><tr><td>事務安全</td><td>不支持 每次查詢具有原子性</td><td>支持 具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務安全(transaction-safe (ACID compliant))型表</td></tr><tr><td>AUTO_INCREMENT</td><td>MyISAM表可以和其他字段一起建立聯合索引</td><td>InnoDB中必須包含只有該字段的索引</td></tr><tr><td>SELECT</td><td>MyISAM更優</td><td></td></tr><tr><td>INSERT</td><td></td><td>InnoDB更優</td></tr><tr><td>UPDATE</td><td></td><td>InnoDB更優</td></tr><tr><td>DELETE</td><td></td><td>InnoDB更優 它不會重新建立表,而是一行一行的刪除</td></tr><tr><td>COUNT without WHERE</td><td>MyISAM更優。因為MyISAM保存了表的具體行數</td><td>InnoDB沒有保存表的具體行數,需要逐行掃描統計,就很慢了</td></tr><tr><td>COUNT with WHERE</td><td>一樣</td><td>一樣,InnoDB也會鎖表</td></tr><tr><td>鎖</td><td>只支持表鎖</td><td>支持表鎖、行鎖 行鎖大幅度提高了多用戶并發操作的新能。但是InnoDB的行鎖,只是在WHERE的主鍵是有效的,非主鍵的WHERE都會鎖全表的</td></tr><tr><td>外鍵</td><td>不支持</td><td>支持</td></tr><tr><td>FULLTEXT全文索引</td><td>支持</td><td>不支持 可以通過使用Sphinx從InnoDB中獲得全文索引,會慢一點</td></tr></tbody></table>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看