精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL 自增 ID 超 int 上限的實戰解法

數據庫 MySQL
我拿著日志去本地請求接口,發現程序是沒有報錯的,我們的邏輯是先把唯一id放到redis里面,如果redis沒有值就insert,有就update,做了一層緩存,估計是這樣的話批量插入和更新數據庫會快一點。

故事背景

今天運維那邊反饋有一個設備在后臺查不到,我第一時間懷疑可能是數據出了問題,導致服務報錯了沒有入庫。

我拿著日志去本地請求接口,發現程序是沒有報錯的,我們的邏輯是先把唯一id放到redis里面,如果redis沒有值就insert,有就update,做了一層緩存,估計是這樣的話批量插入和更新數據庫會快一點。

然后我看redis是有值的,以為是redis和數據庫數據不一致問題,我就把redis的key刪了,重新再跑一下,結果打印了insert語句,但是沒有插入到數據,看來事情并沒有那么簡單- -

問題分析

因為數據表很大,有5E+數據,我第一反應是mysql表數據量可能爆了,但是查了下好像沒有太大限制

圖片圖片

再認真看了下表的自增id,這個數字讓人有點熟悉的:2147483647 這個不就是int的最大值嗎。意思是因為自增id超過了int,所以插入失敗了,id設的就是int類型,還有個小彩蛋,目前數據庫設的int長度是50,但是根本沒什么鳥用。

圖片圖片

知道了問題在哪,但是這個問題處理起來很麻煩,因為數據量太大了,先請教一下deepseek吧。

方案處理

圖片圖片

deepseek給我提供了三個方案:

第一個是最簡單粗暴的改BIGINT,不用遷移數據,但是會全程鎖表。

第二個分布式ID需要重新設計表,需要把數據遷移到新表,而且還要redis等支撐。

第三個分庫分表就更麻煩了,分庫分表需要引入框架,不按照分片查詢還需要引入ES,引入了ES還需要引入同步mysql和ES的中間件logstash等。

但是改bigint估計鎖表太久,我先看看有沒有其他辦法先緊急處理下數據。但是按理說int最大值是21E+,數據表數據才5E+,按理說是用不完的。結果我看到自增的id值居然是不連續的

圖片圖片

按理說自增id應該是一個接著一個,不會有空隙的,后面查了一下由于數據庫自增id有個高性能策略,設置了id就不一定連續。

圖片圖片

后面又查了下有沒有一鍵把數據表id重排的方法,結果也是沒有的。最后我是寫了一個存儲過程先把最后100萬的id清理出來,可以先頂個幾天,后面再想辦法處理。

BEGIN
  DECLARE start_id INTDEFAULT1;
DECLARE end_id INTDEFAULT100000;
DECLARE current_batch INTDEFAULT0;

  WHILE start_id <= end_id DO
    -- 更新臨時表中的ID
    UPDATEtable
    SET id = start_id +1
    WHERE id = (select original_id from (
      SELECT id AS original_id 
      FROMtable
      ORDERBY id DESC
      LIMIT 1) as test);
    
    SET start_id = start_id +1;
END WHILE;
END

最后重新設置自增值,如果自增值已經存在,則會跳到max(id)+1

-- 重置自增值
ALTER TABLE your_table AUTO_INCREMENT = max(id)+1;

清理了大概500萬的id段出來,然后我懷疑id間隔這么大是因為并發太高導致的。一開始程序是單線程,消費到500條就批量入庫,但是后面發現單線程消費比較慢,數據量太多消費有點延遲。后面改成java批量消費,配置了30個消費者。接著我嘗試了一下減少消費者數量,設置成15個,id的間隔真的變小了。

設置 BIGINT

節后回來發現id還剩200萬,討論到最后還是把id的數據類型從int改成bigint

ALTER TABLE xxx MODIFY id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT

UNSIGNED 無符號位,不算負數,可以增加一倍數據,NOT NULL 非空 AUTO_INCREMENT自增

在測試環境有一億數據,修改id的類型大概用了一個小時,現網我估計也是用6-7個小時也差不多了。結果改了一晚上都還沒改好,然后我找了一個可以查詢sql進度的語句......

SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED, ROUND(WORK_COMPLETED/WORK_ESTIMATED*100, 2) AS "Progress (%)" FROM performance_schema.events_stages_current;

不查不知道,一查嚇一跳,跑了十幾個小時居然還不到50%,而且還越跑越慢。對比了一下測試環境和現網環境的buffer_pool等數據也是設置正常。

估計是索引樹變大插入的數據要花多不少時間,還有一個就是現網數據庫還有其他線程會搶占CPU導致速度緩慢。

統計了一下后面的數據大概是1個小時完成1.5%左右

圖片圖片

最后我是周一晚上執行的,周四早上上班的時候才跑完,用了2天多一點的時間~

總結

剛剛才在掘金刷到一篇文章《字節面試:MySQL自增ID用完會怎樣?》,評論區都說有沒有用完的,結果我真用完了,就感覺有點不可思議??偨Y一下有幾個原因吧:

1、數據量確實很大,有5E多數據,然后并發也很高。其實當初他們設計的時候也預料過這個問題,所以設了個int長度50,但是這個長度沒起作用- -所以設計數據庫的時候一定要做好,不然幾億數據改個字段類型要2天

2、數據庫的自增id策略選了高性能策略,導致并發高的時候id間隔很大。30個消費者異步處理,10條數據大概用了100個id的間隔,消耗太快了。所以這里存在一個時間和空間的取舍,使用多線程還是挺危險的操作,要謹慎一點。

還有一個小插曲,因為系統兩天沒消費數據,kafka的數據堆積了很多,然后我把消費者數量從30個改成50個,跑了兩天,kafka還是有1天的延遲,看來麻木添加消費者數量已經沒啥提升的作用了,想起八股文說多線程弄太多反而增加上下文切換的時間浪費,跟這個同理。

最后我弄成sql批量消費,消費速度馬上提上去了。程序的消費策略:

單線程批量500個開始消費 ——> 30個線程單個消費 ——> 30個線程批量50個開始消費

所以說多線程異步+批量操作的策略還是很重要的!不過多線程一定要注意異步問題~

參考資料:https://juejin.cn/post/7494167764917305379

責任編輯:武曉燕 來源: 架構精進之路
相關推薦

2018-12-14 15:35:20

MySQL索引數據庫

2023-12-26 01:09:28

MySQL存儲釋放鎖

2024-06-14 08:34:36

2024-11-11 00:00:06

MySQLID數據類型

2010-03-29 14:09:12

Oracle ID 自

2022-11-08 19:30:52

DjangoID自增

2023-10-17 09:41:04

自增主鍵MySQL

2023-10-24 15:27:33

Mysql自增主鍵

2024-12-25 15:32:29

2024-07-01 09:00:16

2022-06-24 09:22:15

MySQL自增id

2020-03-28 15:50:18

數據庫自增ID維護

2022-05-18 09:49:26

MySQLID數據庫

2022-06-03 08:12:52

InnoDB插入MySQL

2019-09-18 15:49:06

MySQL數據庫面試官

2025-07-03 02:15:00

MySQLID+UUIDB+樹

2011-08-19 09:45:02

DB4O設置自增ID

2010-04-30 12:15:42

Oracle自增ID

2021-05-31 19:50:04

MySQL自增鎖InnoDB

2010-10-08 15:42:39

MySQL設置自增字段
點贊
收藏

51CTO技術棧公眾號

青娱乐精品视频在线| 男人的天堂久久| 亚洲国产婷婷综合在线精品| 国产精品视频免费一区| 中文字幕国产在线观看| 亚洲情侣在线| 亚洲人av在线影院| 日本黄色一级网站| 中文字幕影音在线| 亚洲欧美日韩在线播放| 欧美成人免费在线| www日本在线| 日韩成人av影视| 久久久伊人欧美| www成人啪啪18软件| 丁香花免费高清完整在线播放 | 成人免费高清在线| 国产精品久久久91| 日韩成人一区二区三区| 日韩成人在线观看视频| 日韩欧美成人免费视频| 日韩精品福利片午夜免费观看| 可以在线观看的av网站| 国产成人午夜精品影院观看视频| 国产精品极品在线| 国产成人亚洲精品自产在线| 国产精品99在线观看| 亚洲欧美日韩精品久久| 少妇搡bbbb搡bbb搡打电话| 欧美成人福利| 在线观看视频一区二区欧美日韩| 热99这里只有精品| 色婷婷视频在线观看| 国产精品久久久久久久裸模| 欧美亚洲成人网| 少妇影院在线观看| 亚洲精品va| 久久精视频免费在线久久完整在线看| 伊人网伊人影院| 精品少妇一区| 精品国产99国产精品| 国产探花在线观看视频| 国产高清亚洲| 欧美高清激情brazzers| 欧美三级午夜理伦三级富婆| 蜜桃视频成人m3u8| 色老头久久综合| 99久久国产宗和精品1上映| 在线黄色的网站| 天天影视网天天综合色在线播放| 国产成人永久免费视频| 青草视频在线免费直播| 一区二区三区欧美亚洲| 看全色黄大色大片| 色yeye免费人成网站在线观看| 亚洲理论在线观看| 美女扒开大腿让男人桶| 俄罗斯一级**毛片在线播放| 亚洲电影第三页| 无码粉嫩虎白一线天在线观看| 欧美草逼视频| 亚洲成人av电影在线| 免费一级特黄特色毛片久久看| 国产福利电影在线播放| 欧美日韩午夜视频在线观看| 九九九九免费视频| 欧洲一级精品| 欧美日韩高清一区二区三区| 亚洲精品免费一区亚洲精品免费精品一区 | 国产午夜精品一区二区三区四区| 欧美一区二区视频在线| 在线免费观看的av网站| 亚洲精品日日夜夜| 又大又硬又爽免费视频| 北岛玲heyzo一区二区| 在线观看亚洲精品| 日本一二三四区视频| 福利片一区二区| 亚洲美女在线观看| 精品在线观看一区| 国产精品videosex极品| 全球成人中文在线| 国产精品久久久久久久一区二区| 国产99久久久国产精品潘金| 久久国产精品 国产精品| 中国黄色一级视频| 国内精品国产三级国产a久久| 亚洲自拍偷拍区| 色中色在线视频| 激情成人综合网| 成人永久免费| 你懂得在线网址| 亚洲免费观看高清| 啊啊啊一区二区| 欧美成人xxxx| 日韩大片免费观看视频播放| 农村老熟妇乱子伦视频| 一区久久精品| 国产主播在线一区| 五月婷婷在线播放| 国产精品第四页| 69堂免费视频| 韩国三级大全久久网站| 亚洲欧美中文字幕| 在线免费观看亚洲视频| 丝袜美腿亚洲一区二区图片| 97超级碰碰| 成人亚洲性情网站www在线观看| 一区二区三区日韩在线观看| 国产一区二区视频免费在线观看| 日本在线一区二区三区| 国产亚洲精品高潮| 国产午夜小视频| 国产最新精品精品你懂的| 欧美成熟毛茸茸复古| 调教一区二区| 这里只有精品99re| 久久久视频6r| 性欧美精品高清| 国产精品青青草| 性xxxxfjsxxxxx欧美| 欧美精品自拍偷拍| 摸摸摸bbb毛毛毛片| 亚洲国产专区校园欧美| 亚洲专区中文字幕| 日本中文字幕在线视频| 色素色在线综合| 精品国产av色一区二区深夜久久 | 奇米精品一区二区三区| 欧美第一在线视频| 日韩在线精品视频| 夜夜躁日日躁狠狠久久av| 91年精品国产| 97国产精东麻豆人妻电影| 成人h动漫免费观看网站| 免费av在线一区| 国产免费的av| 综合婷婷亚洲小说| 污污网站免费观看| 日韩在线观看电影完整版高清免费悬疑悬疑| 欧美在线观看一区二区三区| 免费观看a视频| 亚洲午夜精品在线| 波多野结衣办公室双飞| 亚洲激情亚洲| 久久99蜜桃综合影院免费观看| xxxx视频在线| 亚洲国产精品小视频| 国产大片中文字幕| av电影在线观看不卡| 毛片在线播放视频| 亚洲午夜久久| 国产国产精品人在线视| 一区二区三区亚洲视频| 亚洲国产精品精华液ab| 91插插插插插插插插| 四虎成人精品永久免费av九九| 国产有码一区二区| av网站在线免费看推荐| 精品欧美久久久| 国产成人在线免费观看视频| 久久综合九色综合97婷婷| 激情婷婷综合网| 久久人人88| 99热99热| 小视频免费在线观看| 亚洲人成在线观| 一区二区视频网站| 一区二区欧美视频| www.自拍偷拍| 日本欧美一区二区| 国产成人免费高清视频| 成人h动漫精品一区二区器材| 2019中文字幕在线观看| av网站无病毒在线| 日韩欧美你懂的| 中文字幕在线字幕中文| 国产欧美日韩中文久久| 中文 日韩 欧美| 国产精品夜夜夜| 一本一道久久a久久精品综合| 午夜视频在线观看精品中文 | 男人的天堂一区二区| 久久影音资源网| 日本人69视频| 亚洲深爱激情| 不卡中文字幕在线| 日韩欧美ww| 亚洲综合自拍一区| 不卡一二三区| 欧美国产视频一区二区| 你懂的在线观看视频网站| 91麻豆精品久久久久蜜臀| 国产成人精品一区二三区| 国产精品欧美经典| 久久午夜夜伦鲁鲁片| 激情六月婷婷综合| 国产偷人视频免费| 国产精品magnet| 亚洲精品一区二区三区四区五区 | 国产麻豆精品| 欧洲成人免费aa| 2024最新电影在线免费观看| 亚洲欧美中文日韩v在线观看| 亚洲av综合色区无码一区爱av | 亚洲av永久无码国产精品久久 | 欧美日韩视频| 亚洲看片网站| 婷婷综合成人| 国产精品对白一区二区三区| 欧美一级网址| 中文字幕日韩av电影| 亚洲av少妇一区二区在线观看| 欧洲一区在线观看| 午夜影院在线看| 亚洲一区二区三区精品在线| 看黄色录像一级片| 欧美激情一区二区| 成人影视免费观看| 成人动漫中文字幕| 91av免费观看| 国内欧美视频一区二区| 嫩草影院国产精品| 日韩精品国产精品| 人妻少妇被粗大爽9797pw| 伊人激情综合| 福利视频免费在线观看| 亚洲综合婷婷| 精品少妇人妻av一区二区| 日本久久一二三四| 日韩理论片在线观看| 在线日韩一区| 欧美精品一区二区三区在线看午夜| 波多野结衣一区二区三区免费视频| 亚洲自拍另类欧美丝袜| 精品国产亚洲一区二区三区大结局| 成人高清视频观看www| 91在线亚洲| 国产美女被下药99| 朝桐光一区二区| 国产精品久久久久久久久久久新郎| 亚洲天堂资源| 国产精品69av| 欧美日韩在线精品一区二区三区激情综合| 青草青草久热精品视频在线观看| 性感女国产在线| 人人做人人澡人人爽欧美| 欧美xoxoxo| 国产精品91免费在线| 午夜激情成人网| 国产日韩欧美中文在线播放| 亚洲国产91视频| 91中文字幕一区| 亚洲啊v在线免费视频| 国产精品手机在线| 日韩av三区| 日韩电影在线播放| 久久精品国产99久久| 欧美 日韩 国产 在线观看| 女人色偷偷aa久久天堂| 国产尤物av一区二区三区| 在线播放日韩| 国产一区二区视频免费在线观看| 日本不卡123| 中文字幕日韩久久| av在线不卡电影| av女人的天堂| 亚洲私人影院在线观看| 国产一级在线免费观看| 欧美日韩一区二区免费视频| 国产精品熟女视频| 欧美电影一区二区| 日韩在线观看视频一区| 亚洲欧美中文字幕| 国产丝袜在线| 欧美亚洲在线观看| 国产乱子精品一区二区在线观看| 亚洲伊人一本大道中文字幕| 好吊妞国产欧美日韩免费观看网站| 就去色蜜桃综合| 五月开心六月丁香综合色啪| 97在线国产视频| 日本不卡123| 9.1在线观看免费| 国产日产亚洲精品系列| 免费一级肉体全黄毛片| 91黄色小视频| 亚洲AV无码精品国产| 国产亚洲欧洲在线| 蜜桃传媒在线观看免费进入| 国产精品大片wwwwww| 日韩精品三级| 亚洲欧洲一区二区| 亚洲大黄网站| 日韩成人av免费| 久久综合九色欧美综合狠狠| 国产这里有精品| 欧美性猛交xxxx乱大交退制版| 亚洲成人一二三区| 中国china体内裑精亚洲片| av福利在线导航| 成人深夜直播免费观看| 一区二区三区四区在线看| 300部国产真实乱| 美日韩一级片在线观看| 国产白嫩美女无套久久| 亚洲免费av高清| 国产精品露脸视频| 亚洲精品中文字幕av| 久久av色综合| 91亚洲精华国产精华| 国产一区二区精品福利地址| 九色自拍视频在线观看| 国产一区二区三区四| 超碰人人人人人人人| 欧美性生交大片免费| 免费看国产片在线观看| 久久av资源网站| 亚洲高清影院| 亚洲一区精彩视频| 日韩av中文在线观看| 自拍偷拍中文字幕| 精品久久久久久| 日韩在线观看视频一区| 欧美激情一区二区久久久| 国产精品成人**免费视频| 亚洲成人a**址| 石原莉奈在线亚洲三区| 亚洲激情视频小说| 日韩欧美在线一区| 少妇性bbb搡bbb爽爽爽欧美| 88xx成人精品| 久久狠狠久久| 国产精品无码人妻一区二区在线| 成人一级黄色片| 国产极品美女高潮无套嗷嗷叫酒店| 欧美一区二区播放| 老司机av在线免费看| 成人免费福利视频| 91av精品| 99热这里只有精品2| 一区二区三区日本| 欧性猛交ⅹxxx乱大交| 久久久久国产精品www| 精品网站aaa| 拔插拔插海外华人免费| 99久久精品一区二区| 免费看毛片网站| 亚洲欧洲日本专区| 粉嫩91精品久久久久久久99蜜桃| 亚洲丰满在线| 国产麻豆精品一区二区| 免费毛片在线播放免费| 亚洲国产精品人人爽夜夜爽| 亚洲天堂av在线| 日韩高清在线播放| 国产在线精品一区二区不卡了| 欧美做爰爽爽爽爽爽爽| 精品国产乱码久久久久久久| 狠狠操一区二区三区| 久久久久久艹| 日韩国产高清影视| 粉嫩av性色av蜜臀av网站| 精品精品欲导航| 伊人色综合一区二区三区影院视频| 日韩欧美亚洲区| 国产麻豆精品视频| 欧美福利视频一区二区| 中文字幕日韩有码| 综合激情五月婷婷| 日本一区二区三区免费看| 日韩精品一卡二卡三卡四卡无卡| 来吧亚洲综合网| 欧美mv和日韩mv的网站| 在线看片福利| 永久域名在线精品| 波多野结衣中文字幕一区二区三区| 青青草视频在线观看免费| www高清在线视频日韩欧美| 丁香5月婷婷久久| 中文字幕国产传媒| 亚洲一区免费在线观看| 国产69精品久久app免费版| 91在线短视频| 日韩专区一卡二卡| 国产一级免费av| 中文精品99久久国产香蕉| 中文无码日韩欧| 成人一区二区三| 亚洲愉拍自拍另类高清精品| 国产尤物视频在线| 99免费在线观看视频| 日韩av一区二区在线影视| 国产乡下妇女做爰毛片| 在线亚洲午夜片av大片| 秋霞在线一区| 亚洲欧美一区二区三区不卡| 91福利在线导航| 狠狠躁少妇一区二区三区| 国产系列第一页|