日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

假設現在我們要向MySQL插入500萬條數據,如何實現高效快速的插入進去?暫時不考慮數據的獲取、網絡I/O、以及是否跨機操作,本文將在本地進行數據的插入,單純從mysql入手,把優化到底。

1.生成sql文件

首先我們來生成500萬條inster的sql文件,圖1為生成sql文件的程序,運行大概需要25s左右,采用Python3實現,生成的文件如圖2。
 

MySql???é???????¥???????????°???????·′????·′?§????

圖1


MySql快速插入百萬條數據「巴分巴秒」

圖2

2.進行sql插入

這里我寫了個簡單的sh,進行mysql的導入,請看圖3,我里面的密碼用的環境變量,大家寫的時候寫自己的密碼就行,經過了漫長的運行,才插入完成,請看圖4,讓人吐血的運行時間。

 

MySql快速插入百萬條數據「巴分巴秒」

圖3

 

MySql快速插入百萬條數據「巴分巴秒」

圖4

看到圖4,運行了兩個多小時,才插入了500萬條數據,顯然是不能接受的,如果我要插入三五千萬條數據豈非要睡上好幾覺了。優化必須走起來.....

500萬條數據,頻繁的磁盤I/O操作,插入效率緩如蝸牛。我們來試試批量插入,先來減少磁盤I/O操作。

3.生成批量插入sql文件(Python3)

在這里,我的批量插入式一次性插入1000條數據,inster進行5000次就行,相當于5000次I/O操作,比第一次的操作數 ,大大降低,來看圖5-6,為生成的文件。

MySql快速插入百萬條數據「巴分巴秒」

圖5


MySql快速插入百萬條數據「巴分巴秒」

圖6

4.批量sql插入

為保證盡可能的準確性,兩次插入的表結構,類型及內容都一致。

 

MySql快速插入百萬條數據「巴分巴秒」

圖7

 

看到圖7的運行時間,才花了41秒,就插入了500萬條數據,性能提升了近200倍左右,性能達到了量級提升。優化繼續在路上.....

之前看到mysql的引擎對比,說在頻繁批量插入時,MyIASM引擎比InnoDB引擎性能更好。我們來試試看.....

5.更換引擎

MySql快速插入百萬條數據「巴分巴秒」

圖8

看到圖8,我這邊默認的引擎還是InnoDB。

如圖9,我們執行命令:alter table batch_jq engine=MYISAM;進行更改引擎。(小知識點:mysql終端想清屏,可以使用system clear命令)

 

MySql快速插入百萬條數據「巴分巴秒」

圖9

 

MySql快速插入百萬條數據「巴分巴秒」

圖10

如圖10,更改引擎后,只用了25秒就插入了500萬條數據,性能又有了一個新的提升。我們在數據插入完成后,再將引擎更改回InnoDB即可。

優化在路上....

之后會出一篇針對海量數據的sql優化,準備階段,敬請期待!!!

擴展:

(1)如若插入海量數據,建議可以先不考慮建立索引,因為索引也是需要維護的,會降低插入性能,可以等插入完成后,再去建立索引。如若是MyISAM,可以忽略,因其延遲更新索引的特性,可以使插入性能大大提升(上述例子兩個表,均未建立索引)。

(2)MySQL為了保證ACID中的一致性和持久性,使用了WAL。

Redo log就是一種WAL的應用。當數據庫忽然掉電,再重新啟動時,MySQL可以通過Redo log還原數據。也就是說,每次事務提交時,不用同步刷新磁盤數據文件,只需要同步刷新Redo log就足夠了。相比寫數據文件時的隨機IO,寫Redo log時的順序IO能夠提高事務提交速度。

在沒有開啟binlog時,Redo log的刷盤操作將會是最終影響MySQL TPS的瓶頸所在。為了緩解這一問題,MySQL使用了組提交,將多個刷盤操作合并成一個,如果說10個事務依次排隊刷盤的時間成本是10,那么將這10個事務一次性一起刷盤的時間成本則近似于1。

有什么問題請留言,大家一起探討學習。

分享到:
標簽:MySql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定