摘要:更多詳情,請看原文章批量插入性能優(yōu)化相關(guān)文章高并發(fā)簡單解決方案隊(duì)列緩存批量入庫離線整合秒殺活動設(shè)計(jì)方案
一、MySQL批量插入優(yōu)化在項(xiàng)目中,經(jīng)常都會遇到高并發(fā)問題,如在某個(gè)時(shí)間點(diǎn)有100個(gè)人對同一數(shù)據(jù)進(jìn)行更改,這樣就會產(chǎn)生問題,最后導(dǎo)致的數(shù)據(jù)會不準(zhǔn)確,通常的解決高并發(fā)的方法有讀取數(shù)據(jù)時(shí)加緩存,寫入數(shù)據(jù)時(shí)添加到隊(duì)列,下面羅列一些處理高并發(fā)的常見方法供大家參考。
對于一些數(shù)據(jù)量較大的系統(tǒng),數(shù)據(jù)庫面臨的問題除了查詢效率低下,還有就是數(shù)據(jù)入庫時(shí)間長。特別像報(bào)表系統(tǒng),每天花費(fèi)在數(shù)據(jù)導(dǎo)入上的時(shí)間可能會長達(dá)幾個(gè)小時(shí)或十幾個(gè)小時(shí)之久。因此,優(yōu)化數(shù)據(jù)庫插入性能是很有意義的。
經(jīng)過對MySQL innodb的一些性能測試,發(fā)現(xiàn)一些可以提高insert效率的方法,供大家參考參考。
一條SQL語句插入多條數(shù)據(jù)。
常用的插入語句如:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ("0", "userid_0", "content_0", 0); INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ("1", "userid_1", "content_1", 1);
修改成:
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ("0", "userid_0", "content_0", 0), ("1", "userid_1", "content_1", 1);
修改后的插入操作能夠提高程序的插入效率。這里第二種SQL執(zhí)行效率高的主要原因是合并后日志量(MySQL的binlog和innodb的事務(wù)讓日志)減少了,降低日志刷盤的數(shù)據(jù)量和頻率,從而提高效率。通過合并SQL語句,同時(shí)也能減少SQL語句解析的次數(shù),減少網(wǎng)絡(luò)傳輸?shù)腎O。
這里提供一些測試對比數(shù)據(jù),分別是進(jìn)行單條數(shù)據(jù)的導(dǎo)入與轉(zhuǎn)化成一條SQL語句進(jìn)行導(dǎo)入,分別測試1百、1千、1萬條數(shù)據(jù)記錄。
還可以在事務(wù)中進(jìn)行插入處理。
更多詳情,請看原文章:MySQL批量SQL插入性能優(yōu)化
相關(guān)文章:
【高并發(fā)簡單解決方案】redis隊(duì)列緩存 + mysql 批量入庫 + php離線整合
秒殺活動設(shè)計(jì)方案
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22526.html
摘要:獲取消息隊(duì)列中的腳本,拼接,批量入庫。批量入庫腳本天級統(tǒng)計(jì)腳本總結(jié)相對于其他復(fù)雜的方式處理高并發(fā),這個(gè)解決方案簡單有效通過緩存抗壓,批量入庫解決數(shù)據(jù)庫瓶頸,離線計(jì)算解決統(tǒng)計(jì)數(shù)據(jù),通過定期清理保證庫的大小。 需求背景:有個(gè)調(diào)用統(tǒng)計(jì)日志存儲和統(tǒng)計(jì)需求,要求存儲到mysql中;存儲數(shù)據(jù)高峰能達(dá)到日均千萬,瓶頸在于直接入庫并發(fā)太高,可能會把mysql干垮。 問題分析 思考:應(yīng)用網(wǎng)站架構(gòu)的衍化過...
閱讀 2243·2021-11-15 11:36
閱讀 1408·2021-10-14 09:42
閱讀 4239·2021-09-30 09:52
閱讀 1764·2021-09-24 10:24
閱讀 993·2021-09-02 09:56
閱讀 2715·2019-08-30 13:11
閱讀 3078·2019-08-30 13:06
閱讀 968·2019-08-30 12:56