欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Mysql中怎么優(yōu)化insert性能

本篇文章為大家展示了MySQL 中怎么優(yōu)化insert性能,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及酒店設(shè)計(jì)等,在網(wǎng)站建設(shè)、成都全網(wǎng)營銷、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

Mysql優(yōu)化之加速INSERT插入一條記錄花費(fèi)的時(shí)間由以下幾個(gè)因素決定,數(shù)字表示影響的比例:
 
連接:(3)
 
發(fā)送查詢給服務(wù)器:(2)
 
解析查詢:(2)
 
插入記錄:(1*記錄大小)
 
插入索引:(1*索引數(shù)量)
 
關(guān)閉:(1)
 
此處沒有考慮初始化時(shí)打開數(shù)據(jù)表的開銷,因?yàn)槊看芜\(yùn)行查詢只會(huì)做這么一次。
 
如果是B-tree索引,隨著索引數(shù)量的增加,插入記錄的速度以logN的比例下降。
 
可以用以下幾種方法來提高插入速度:
 
如果要在同一個(gè)客戶端在同一時(shí)間內(nèi)插入很多記錄,可以使用INSERT語句附帶有多個(gè)values值。這種做法比使用單一值的INSERT語句快多了(在一些情況下比較快)。如果是往一個(gè)非空數(shù)據(jù)表增加記錄,可以調(diào)整變量bulk_insert_buffer_size的值使其更快。
 
如果要從不用的客戶端插入大量記錄,使用INSERT DELAYED語句也可以提高速度。
 
對(duì)應(yīng)MyISAM,可以在SELECT語句正在運(yùn)行時(shí)插入記錄,只要這時(shí)候沒有正在刪除記錄。
 
想要將一個(gè)文本文件加載到數(shù)據(jù)表中,可以使用LOAD DATA INFILE。這通常是使用大量INSERT語句的20倍。
 
通過一些額外工作,就可以讓LOAD DATA INFILE在數(shù)據(jù)表有大量索引的情況下運(yùn)行更快。步驟如下:
 
用create table隨表建一個(gè)表
 
執(zhí)行FLUSH TABLES語句或admin flush-tables命令
 
執(zhí)行myisamchk –keys-used=0 -rq /path/to/db/tbl_name命令,刪除數(shù)據(jù)表所有索引。
 
執(zhí)行LOAD DATA INFILE,數(shù)據(jù)插入到表中,由于無需更新表索引,因此這將非常快。
 
如果將來只是讀取該表,運(yùn)行myisampack讓數(shù)據(jù)表更小。
 
運(yùn)行myisamchk -r -q /path/to/db/tbl_name重建索引。創(chuàng)建的索引樹在寫入磁盤前先保存在內(nèi)存中,這省去了磁盤磁盤搜索,因此速度快很多。重建后的索引樹分布非常均衡。
 
執(zhí)行FLUSH TABLES語句或mysqladmin flush-tables命令
 
注意,在Mysql 4.0起,可以運(yùn)行ALTER TABLE tbl_name DISABLE KEYS來代替myisamchk –keys-used=0 -rq /path/to/db/tbl_name.運(yùn)行ALTER TABLE tbl_name ENABLE KEYS代替myisamchk -r -q /path/to/db/tbl_name.這么做就可以省去FLUSH TABLES步驟。
 
 
 
可以在鎖表后,一起執(zhí)行幾個(gè)語句來加速INSERT操作:
 
LOCK TABLES a WRITE;
 
INSERT INTO a VALUES(1,23),(2,23);
 
INSERT INTO a VALUES(8,7);
 
UNLOCK TABLES;
 
這對(duì)性能提高的好處在于:直到所有的INSERT語句都完成之后,索引緩存一次性刷新到磁盤中。通常情況下,有多少次INSERT語句就會(huì)有多少次索引緩存刷新到磁盤中的開銷。如果能在一個(gè)語句中一次性插入多個(gè)值的話,顯然鎖表操作也沒有必要了。對(duì)于事務(wù)表而言,用BEGIN/COMMIT代替LOCK TABLES來提高速度。鎖表也會(huì)降低多次連接測試的總時(shí)間,盡管每個(gè)獨(dú)立連接為了等待鎖的最大等待時(shí)間也會(huì)增加。
 
Connection 1 does 1000 inserts
 
Connection 2,3 and 4 do 1 insert
 
Connection 5 does 1000 inserts
 
如果沒有鎖表,則連接2,3,4會(huì)在1,5之前完成。如果鎖表了,則連接2,3,4可能在1,5之后才能完成,但總時(shí)間可能只需要40%。Mysql的INSERT、UPDATE、DELETE操作都非常快,不過在一個(gè)語句中如果超過5個(gè)插入或者更新時(shí)最好加鎖以得到更好的性能。如果要一次性做很多次插入,最好在每個(gè)循環(huán)的前后加上LOCK TABLES和UNLOCK TABLES,從而讓其他進(jìn)程也能訪問數(shù)據(jù)表;這么做性能依然不錯(cuò)。INSERT總比LOAD DATA INFILE插入數(shù)據(jù)慢,因?yàn)槎邔?shí)現(xiàn)策略有分明的不同。
 
想要MyISAM表更快,在LOAD DATA INFILE和INSERT時(shí)都可以增加系統(tǒng)變量key_buffer_size的值。
 

上述內(nèi)容就是Mysql 中怎么優(yōu)化insert性能,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:Mysql中怎么優(yōu)化insert性能
分享鏈接:http://chinadenli.net/article48/joisep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、虛擬主機(jī)、營銷型網(wǎng)站建設(shè)網(wǎng)站建設(shè)、服務(wù)器托管、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
亚洲国产黄色精品在线观看| 暴力性生活在线免费视频| 日韩欧美一区二区久久婷婷| 韩日黄片在线免费观看| 国产精品一区二区丝袜| 大香蕉精品视频一区二区| 国产在线小视频你懂的| 欧美日不卡无在线一区| 91欧美视频在线观看免费| 色哟哟精品一区二区三区| 国产亚洲成av人在线观看| 日本丁香婷婷欧美激情| 国产成人精品视频一区二区三区| 正在播放玩弄漂亮少妇高潮| 亚洲最大的中文字幕在线视频| 色婷婷视频免费在线观看| 大香蕉大香蕉手机在线视频| 精品人妻精品一区二区三区| 午夜福利黄片免费观看| 欧美日韩有码一二三区| 精品国产成人av一区二区三区| 欧美成人免费夜夜黄啪啪| 国产成人午夜在线视频| 久久人人爽人人爽大片av| 国产精品人妻熟女毛片av久久| 91精品国自产拍老熟女露脸| 在线观看视频日韩成人| 久久99爱爱视频视频| 亚洲国产欧美精品久久| 亚洲综合天堂一二三区| 欧美亚洲三级视频在线观看| 日韩精品小视频在线观看| 伊人天堂午夜精品草草网| 亚洲视频偷拍福利来袭| 91欧美日韩中在线视频| 欧美人妻免费一区二区三区| 亚洲最大福利在线观看| av在线免费播放一区二区| 果冻传媒在线观看免费高清 | 久久热在线视频免费观看| 日本一区二区三区黄色|