国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL 百萬級/千萬級表 全量更新

這篇具有很好參考價值的文章主要介紹了MySQL 百萬級/千萬級表 全量更新。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

業(yè)務(wù)需求:今天從生成測試環(huán)境遷移了一批百萬級/千萬級表的數(shù)據(jù),領(lǐng)導(dǎo)要求將這批數(shù)據(jù)進行脫敏處理(將真實姓名 、電話、郵箱、身份證號等敏感信息進行替換)。遷移數(shù)據(jù)記錄數(shù)如下(小于百萬級的全量更新不是本文重點):

表名 表名含義 行記錄數(shù)
base_house 房屋表 4201183
base_license 預(yù)售證表 17653209
base_contract 網(wǎng)簽合同 1500579

解決辦法:

第一種:使用Update 語句進行全表更新。

結(jié)論:update 更新時間慢長,單表百萬級數(shù)據(jù)更新少說幾小時起步。這種方案放棄

第二種:使用存儲過程,進行批量更新。

實戰(zhàn):

create procedure batch_update_house()
begin
	-- 定義變量
	declare i int default 1;
    -- 批次更新大小 10000
	declare pageSize int default 10000;
	declare j int default 1;
	-- 421 為房屋總記錄 數(shù)/10000 向上取整
	while i < 421 do
		if i = 1 then
            -- 溫馨提示:update 語句不能直接使用limit,必須使用子查詢
			update base_house set real_name ="******", real_phone="136****0511"  where id in(select id from (select id from base_house limit  i, pageSize ) as temp);
		else
			set j = i * pageSize + 1;
            -- 溫馨提示:update 語句不能直接使用limit,必須使用子查詢
			update base_house set real_name ="******", real_phone="136****0511"  where id in(select id from (select id from base_house limit  j, pageSize ) as temp);
		end if;
		set i = i + 1;
	end while;
end

功能說明: batch_update_house 房屋全量更新存儲過程。

結(jié)論:伴隨limit 偏移量量增大,每次花費尋找起始位置行的時間會延長,但能夠避免超長時間執(zhí)行。(入選清洗方案)? ?

第三種:使用中間表,通過大表關(guān)聯(lián)中間表進行update,通過where 條件命中索引,可以提升批量更新尋找起始位置行的時間? ? ?

第一步:設(shè)計房屋清洗中間表:base_middle_house,設(shè)計兩個字段(id 主鍵 自增長、house_id 房屋關(guān)聯(lián)主鍵,唯一主鍵)

create table "base_middle_house" (
    `id` int(11) not null auto_increment comment '主鍵',
    `house_id` varchar(200) not null comment '房屋關(guān)聯(lián)主鍵',
    primary key (`id`),
    unique key `unique_house_id` (`house_id`)
) engine=InnoDB auto_increment=1 default charset=utf8mb4

第二步:創(chuàng)建批量更新存儲過程

create procedure batch_update_middle_house()
begin
	-- 定義變量
	declare i int default 1;
	declare pageSize int default 100000;
	declare j int default 1;
	
	while i < 43 do
		if i = 1 then
			update base_house h, base_middle_house t set  h.real_name ="******", h.real_phone="136****0511"  where t.house_id = h.id and t.id >=1 amd t.id <=100000;
		else
			set j = (i -1) * pageSize + 1;
			update base_house h, base_middle_house t set h.real_name ="******", h.real_phone="136****0511"  where t.house_id = h.id and t.id >=j amd t.id <= i*pageSize;
		end if;
		set i = i + 1;
	end while;
end

實戰(zhàn):執(zhí)行batch_update_middle_house 存儲過程,base_house 全表4201183 記錄數(shù)在1小時10分鐘內(nèi)全部清洗完畢。

結(jié)論:第三種方案針對第二種方案對于尋找起始行位置通過索引進行了優(yōu)化,批量更新的時間也有明細的提示,達到單臺服務(wù)器每分鐘處理5000條記錄數(shù)據(jù)。初步達到領(lǐng)導(dǎo)的要求。(清洗方案s首推)?文章來源地址http://www.zghlxwxcb.cn/news/detail-454553.html

到了這里,關(guān)于MySQL 百萬級/千萬級表 全量更新的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Spark數(shù)倉項目】需求八:MySQL的DataX全量導(dǎo)入和增量導(dǎo)入Hive

    【Spark數(shù)倉項目】需求八:MySQL的DataX全量導(dǎo)入和增量導(dǎo)入Hive 本需求將模擬從MySQL中向Hive數(shù)倉中導(dǎo)入數(shù)據(jù),數(shù)據(jù)以時間分區(qū)。測試兩種導(dǎo)入場景,一種是將數(shù)據(jù)全量導(dǎo)入,即包含所有時間分區(qū);另一種是每天運行調(diào)度,僅導(dǎo)入當(dāng)天時間分區(qū)中的用戶數(shù)據(jù)。 mysql表建表語句:

    2024年02月03日
    瀏覽(21)
  • kafka千萬級數(shù)據(jù)積壓原因以及解決方案

    一、原因 kafka作為消息隊列,其中數(shù)據(jù)積壓也是經(jīng)常遇到的問題之一。 我們都知道,數(shù)據(jù)積壓的直接原因,一定是系統(tǒng)中的某個部分出現(xiàn)了性能問題,來不及處理上游發(fā)送的數(shù)據(jù),才會導(dǎo)致數(shù)據(jù)積壓。 那么我們就需要分析在使用kafka時,如何通過優(yōu)化代碼以及參數(shù)配置來最大

    2024年02月12日
    瀏覽(24)
  • 千萬級數(shù)據(jù)深分頁查詢SQL性能優(yōu)化實踐

    如何在Mysql中實現(xiàn)上億數(shù)據(jù)的遍歷查詢?先來介紹一下系統(tǒng)主角:關(guān)注系統(tǒng),主要是維護京東用戶和業(yè)務(wù)對象之前的關(guān)注關(guān)系;并對外提供各種關(guān)系查詢,比如查詢用戶的關(guān)注商品或店鋪列表,查詢用戶是否關(guān)注了某個商品或店鋪等。但是最近接到了一個新需求,要求提供查

    2024年02月11日
    瀏覽(30)
  • ElasticSearch + Canal 開發(fā)千萬級的實時搜索系統(tǒng)【轉(zhuǎn)】

    ElasticSearch + Canal 開發(fā)千萬級的實時搜索系統(tǒng)【轉(zhuǎn)】

    我們總結(jié)一下新搜索系統(tǒng)需要解決的幾個問題: 海量請求。幾百萬的請求毫無壓力,上千萬上億也要可以扛得住。 實時搜索。指的是當(dāng)一個用戶修改了其數(shù)據(jù)之后,另一個用戶能實時地搜索到改用戶。 海量請求。要扛得起海量的搜索請求,可以使用ElasticSearch來實現(xiàn),它是在

    2024年04月09日
    瀏覽(18)
  • Java中處理千萬級數(shù)據(jù)的最佳實踐:性能優(yōu)化指南

    在今天的數(shù)字化時代,處理大規(guī)模數(shù)據(jù)已經(jīng)成為許多Java應(yīng)用程序的核心任務(wù)。無論您是構(gòu)建數(shù)據(jù)分析工具、實現(xiàn)實時監(jiān)控系統(tǒng),還是處理大規(guī)模日志文件,性能優(yōu)化都是確保應(yīng)用程序能夠高效運行的關(guān)鍵因素。本指南將介紹一系列最佳實踐,幫助您在處理千萬級數(shù)據(jù)時提高

    2024年02月03日
    瀏覽(37)
  • 千萬級數(shù)據(jù)并發(fā)解決方案(理論+實戰(zhàn)) 高并發(fā)解決思路 方案

    千萬級數(shù)據(jù)并發(fā)解決方案(理論+實戰(zhàn)) 高并發(fā)解決思路 方案

    課程地址 項目地址 秒殺 高并發(fā) 新聞系統(tǒng) 超大數(shù)據(jù)量 一般的網(wǎng)站 寫入的少 讀取的次數(shù)多 模糊查詢 數(shù)據(jù)量少的時候可以用 like 數(shù)據(jù)量多的時候用 Elasticsearch搜索引擎 占用磁盤空間比較大 在laravel中 創(chuàng)建 要提前配置好數(shù)據(jù)庫 在Tests文件中寫入 運行命令 php artisan app:tests 生成

    2024年02月08日
    瀏覽(28)
  • 百萬數(shù)據(jù)慢慢讀?Pandas性能優(yōu)化法速讀百萬級數(shù)據(jù)無壓力

    作為數(shù)據(jù)分析工作者,我們每天都要處理大量數(shù)據(jù),這時Pandas等工具的讀取性能也就備受關(guān)注。特別是當(dāng)數(shù)據(jù)集達到百萬行以上時,如何提高讀取效率,讓數(shù)據(jù)分析工作跑上“快車道”?本文將詳細分析Pandas讀取大數(shù)據(jù)的性能優(yōu)化方法,以及一些建議和經(jīng)驗。 1. 使用SQL進行預(yù)處理 可

    2024年02月09日
    瀏覽(23)
  • 千萬級數(shù)據(jù)的表,我把慢sql優(yōu)化后性能提升30倍!

    千萬級數(shù)據(jù)的表,我把慢sql優(yōu)化后性能提升30倍!

    背景:系統(tǒng)中有一個統(tǒng)計頁面加載特別慢,前端設(shè)置的40s超時時間都加載不出來數(shù)據(jù),因為是個統(tǒng)計頁面,基本上一猜就知道是mysql的語句有問題,遺留了很久沒有解決,正好趁不忙的時候,下定決心一定把它給搞定! (mysql5.7) 執(zhí)行一下問題sql,可以看到單表查就需要61s 這

    2024年02月14日
    瀏覽(21)
  • 百萬級sql server數(shù)據(jù)庫優(yōu)化案例分享

    百萬級sql server數(shù)據(jù)庫優(yōu)化案例分享

    ????????在我們的IT職業(yè)生涯中,能有一次百萬級的數(shù)據(jù)庫的優(yōu)化經(jīng)歷是很難得的,如果你遇到了恭喜你,你的職業(yè)生涯將會更加完美,如果你遇到并解決了,那么一定足夠你炫耀很多年。 ? ? ? ? 這里我將要分享一次完美的百萬級數(shù)據(jù)庫優(yōu)化經(jīng)歷,希望能給在IT行業(yè)的小

    2024年02月17日
    瀏覽(92)
  • 千萬級并發(fā)架構(gòu)下,如何進行關(guān)系型數(shù)據(jù)庫的分庫分表

    千萬級并發(fā)架構(gòu)下,如何進行關(guān)系型數(shù)據(jù)庫的分庫分表

    最近項目上線后由于用戶量的劇增,導(dǎo)致數(shù)據(jù)庫的數(shù)據(jù)量劇增,隨之而來的就是海量數(shù)據(jù)存儲的問題,針對最近解決數(shù)據(jù)的優(yōu)化過程,談?wù)剆ql語句的優(yōu)化以及數(shù)據(jù)庫分庫分表的方案。 建議大家先閱讀一下數(shù)據(jù)庫的優(yōu)化方案 《數(shù)據(jù)庫大數(shù)據(jù)量的優(yōu)化方案》,里面從 1.優(yōu)化現(xiàn)有數(shù)

    2024年02月16日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包