• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    mysql數據庫讀取速度和插入速度的調整記錄

    來源:懂視網 責編:小采 時間:2020-11-09 15:41:27
    文檔

    mysql數據庫讀取速度和插入速度的調整記錄

    mysql數據庫讀取速度和插入速度的調整記錄:由于項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由于0增加至4億)。在整個過程調優過程非常艱辛。 (1)提高數據庫插入性能中心思想:盡量將數據一次性寫入到Data File和減少數據庫的checkpoint 操作。這次修改了下面四個配置項:
    推薦度:
    導讀mysql數據庫讀取速度和插入速度的調整記錄:由于項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由于0增加至4億)。在整個過程調優過程非常艱辛。 (1)提高數據庫插入性能中心思想:盡量將數據一次性寫入到Data File和減少數據庫的checkpoint 操作。這次修改了下面四個配置項:

    由于項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由于0增加至4億)。在整個過程調優過程非常艱辛。 (1)提高數據庫插入性能中心思想:盡量將數據一次性寫入到Data File和減少數據庫的checkpoint 操作。這次修改了下面四個配置項:


    由于項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由于0增加至4億)。在整個過程調優過程非常艱辛。

    (1)提高數據庫插入性能中心思想:盡量將數據一次性寫入到Data File和減少數據庫的checkpoint 操作。這次修改了下面四個配置項:

    1)將 innodb_flush_log_at_trx_commit 配置設定為0;按過往經驗設定為0,插入速度會有很大提高。


    0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commit.

    1:the log buffer is written out to the log file at each transaction commit and the flush to disk operation is performed on the log file

    2:the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it

    2)將 innodb_autoextend_increment 配置由于默認8M 調整到 128M


    此配置項作用主要是當tablespace 空間已經滿了后,需要MySQL系統需要自動擴展多少空間,每次tablespace 擴展都會讓各個SQL 處于等待狀態。增加自動擴展Size可以減少tablespace自動擴展次數。


    3)將 innodb_log_buffer_size 配置由于默認1M 調整到 16M


    此配置項作用設定innodb 數據庫引擎寫日志緩存區;將此緩存段增大可以減少數據庫寫數據文件次數。


    4)將 innodb_log_file_size 配置由于默認 8M 調整到 128M


    此配置項作用設定innodb 數據庫引擎UNDO日志的大小;從而減少數據庫checkpoint操作。


    經過以上調整,系統插入速度由于原來10分鐘幾萬條提升至1秒1W左右;注:以上參數調整,需要根據不同機器來進行實際調整。特別是 innodb_flush_log_at_trx_commit、innodb_log_buffer_size和 innodb_log_file_size 需要謹慎調整;因為涉及MySQL本身的容災處理。


    (2)提升數據庫讀取速度,重數據庫層面上讀取速度提升主要由于幾點:簡化SQL、加索引和分區; 經過檢查程序SQL已經是最簡單,查詢條件上已經增加索引。我們只能用武器:表分區。


    數據庫 MySQL分區前準備:在MySQL中,表空間就是存儲數據和索引的數據文件。

    將S11數據庫由于同享tablespace 修改為支持多個tablespace;


    將wb_user_info_sina 和 wb_user_info_tx 兩個表修改為各自獨立表空間;(Sina:1700W數據,2.6G 大數據文件,Tencent 1400W,2.3G大數據文件);

    分區操作:

    將現有的主鍵和索引先刪除
    重現建立id,uid 的聯合主鍵

    再以 uid 為鍵值進行分區。這時候到/var/data/mysql 查看數據文件,可以看到兩個大表各自獨立表空間已經分割成若干個較少獨立分區空間。(這時候若以uid 為檢索條件進行查詢,并不提升速度;因為鍵值只是安排數據存儲的分區并不會建立分區索引。我非常郁悶這點比Oracle 差得不是一點半點。)

    再以 uid 字段上進行建立索引。再次到/var/data/mysql 文件夾查看數據文件,非常郁悶地發現各個分區Size竟然大了。MySQL還是老樣子將索引與數據存儲在同一個tablespace里面。若能index 與 數據分離能夠更加好管理。


    經過以上調整,暫時沒能體現出系統讀取速度提升;基本都是在 2~3秒完成5K數據更新。


    MySQL數據庫插入速度調整補充資料:


    MySQL 從最開始的時候 1000條/分鐘的插入速度調高至 10000條/秒。 相信大家都已經等急了相關介紹,下面我做調優時候的整個過程。提高數據庫插入性能中心思想:

    1、盡量使數據庫一次性寫入Data File

    2、減少數據庫的checkpoint 操作

    3、程序上盡量緩沖數據,進行批量式插入與提交

    4、減少系統的IO沖突


    根據以上四點內容,作為一個業余DBA對MySQL服務進行了下面調整:

    修改負責收錄記錄MySQL服務器配置,提升MySQL整體寫速度;具體為下面三個數據庫變量值:

    innodb_autoextend_increment、innodb_log_buffer_size、innodb_log_file_size;此三個變量默認值分別為 5M、8M、8M,根據服務器內存大小與具體使用情況,將此三只分別修改為:128M、16M、128M。同時,也將原來2個 Log File 變更為 8 個Log File。此次修改主要滿足第一和第二點,如:增加innodb_autoextend_increment就是為了避免由于頻繁自動擴展Data File而導致 MySQL 的checkpoint 操作;

    將大表轉變為獨立表空并且進行分區,然后將不同分區下掛在多個不同硬盤陣列中。


    完成了以上修改操作后;我看到下面幸福結果:


    獲取測試結果:
    Query OK, 2500000 rows affected (4 min 4.85 sec)
    Records: 2500000 Duplicates: 0 Warnings: 0
    Query OK, 2500000 rows affected (4 min 58.89 sec)
    Records: 2500000 Duplicates: 0 Warnings: 0
    Query OK, 2500000 rows affected (5 min 25.91 sec)
    Records: 2500000 Duplicates: 0 Warnings: 0
    Query OK, 2500000 rows affected (5 min 22.32 sec)


    Records: 2500000 Duplicates: 0 Warnings: 0
    最后表的數據量:
    +------------+
    | count(*) |
    +------------+
    | 10000000|
    +------------+
    從上面結果來看,數據量增加會對插入性能有一定影響。不過,整體速度還是非常面議。一天不到時間,就可以完成4億數據正常處理。
    來源:豆芽博客,地址:http://www.aichengxu.com/article/MySQL/936_10.html

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    mysql數據庫讀取速度和插入速度的調整記錄

    mysql數據庫讀取速度和插入速度的調整記錄:由于項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由于0增加至4億)。在整個過程調優過程非常艱辛。 (1)提高數據庫插入性能中心思想:盡量將數據一次性寫入到Data File和減少數據庫的checkpoint 操作。這次修改了下面四個配置項:
    推薦度:
    標簽: 記錄 調整 速度
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲国产精品SSS在线观看AV| 国产综合精品久久亚洲| 四虎在线精品视频一二区| 亚洲午夜精品久久久久久app| 国产精品亚洲二区在线观看| 91精品欧美综合在线观看| 蜜臀AV无码国产精品色午夜麻豆| 九九热在线精品视频| 人妻AV一区二区三区精品| 精品久久人人妻人人做精品| 亚洲精品天天影视综合网| 国产国拍亚洲精品mv在线观看| 香蕉依依精品视频在线播放 | 精品亚洲成a人片在线观看 | 国产欧美日本亚洲精品一5| 91人前露出精品国产| 久久精品一本到99热免费| 在线精品视频一区二区| 无码人妻精品一区二区三区99不卡| 国产精品日韩欧美在线第3页| 久久精品国产一区| 99久久精品影院老鸭窝| 精品人妻中文av一区二区三区 | 国产精品白丝jkav网站| 欧美韩国精品另类综合| 精品国产污污免费网站| 国产精品福利一区二区| 99热亚洲色精品国产88| 国产精品视频色拍拍| 99在线精品一区二区三区| 91精品欧美综合在线观看| 999在线视频精品免费播放观看 | 国产精品无码av在线播放| 国内精品久久久人妻中文字幕| 久久精品人人槡人妻人人玩AV| 久久青青草原精品国产| 国语自产少妇精品视频蜜桃| 91精品国产福利尤物| 99久久国语露脸精品国产| 国产精品三级在线| 成人精品一区二区三区在线观看|