精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久在线91| 国产精品久久久网站| 国产精品欧美久久久久无广告| 国产成人综合久久| 大吊一区二区三区| 欧美性猛交xxxx乱大交hd| 伊人成综合网yiren22| 色域天天综合网| 一区二区三区四区| 99国产揄拍国产精品| 日韩亚洲国产精品| 日韩中文字幕国产| 日本美女视频网站| 在线视频1区2区| 国产美女一区二区| 欧美在线不卡区| 夫妻性生活毛片| 色吊丝一区二区| 欧美精品1区2区| www国产黄色| 欧美另类极品| 91蝌蚪porny九色| 亚洲bt天天射| 国产99久久久久久免费看| 欧美视频网站| 中文字幕欧美专区| 亚州av综合色区无码一区| 日韩在线激情| 国产精品久久久久一区二区三区共| 51国偷自产一区二区三区的来源| 性色国产成人久久久精品| h片在线观看视频免费| 欧美国产丝袜视频| 精品不卡在线| 国产福利视频导航| 人妖欧美一区二区| 欧美又大粗又爽又黄大片视频| 老妇女50岁三级| 波多野结衣在线播放一区| 精品福利一区二区三区| 三级黄色片免费观看| 黄色在线论坛| 久久精品亚洲国产奇米99| 国产成人精品久久二区二区91| 欧美极品视频在线观看| 婷婷亚洲最大| 中文字幕亚洲一区二区三区五十路| 午夜免费福利影院| 97一区二区国产好的精华液| 欧美夫妻性生活| 中文字幕亚洲乱码| gogo在线高清视频| 国产精品久久毛片| 亚洲国产精品日韩| 青青草在线播放| eeuss国产一区二区三区 | 亚洲精品一区二区三区婷婷月| 激情小说欧美色图| 网站一区二区| 日韩免费一区二区| 性折磨bdsm欧美激情另类| 久久国际精品| 欧美videossexotv100| 91欧美一区二区三区| 榴莲视频成人app| 日韩欧美黄色影院| aaa黄色大片| 国内精品麻豆美女在线播放视频| 精品少妇一区二区三区日产乱码| 在线播放国产视频| 9l视频自拍九色9l视频成人| 亚洲成在人线av| 久久免费精品国产| 欧美自拍一区| 亚洲天堂av图片| 中文字幕第24页| 久久久久亚洲| 欧美激情18p| 一起草在线视频| 日韩av不卡一区| 亚洲欧洲在线看| 九九热久久免费视频| 亚洲国产精品成人| 欧美激情一级欧美精品| 天天做天天爱夜夜爽| 日韩经典一区二区| 久久久久久久久综合| 国产精品suv一区二区69| 国产一区导航| 国产免费久久av| www黄色在线观看| 91日韩精品一区| 一本一生久久a久久精品综合蜜| www视频在线免费观看| 亚洲国产精品精华液网站| 欧美一级在线看| 国产原创一区| 亚洲电影av在线| 精品人妻无码一区二区三区换脸| 国产精品嫩模av在线| 久久躁日日躁aaaaxxxx| 成人免费区一区二区三区| 日本最新不卡在线| 国产精品久久亚洲| 午夜福利视频一区二区| 国产精品久久久一区麻豆最新章节| 国内少妇毛片视频| 成人视屏在线观看| 精品久久一区二区三区| 亚洲色图第四色| 午夜精品偷拍| 国产精品久久久久久婷婷天堂| 99久久国产免费| 久久婷婷国产综合精品青草| 国产经典久久久| 欧美人与性动交xxⅹxx| 亚洲.国产.中文慕字在线| 国产一区二区视频免费在线观看| 伊人久久一区| 亚洲欧美日韩久久久久久| av成人免费网站| 视频一区中文字幕国产| 国产精品二区三区| 麻豆系列在线观看| 日本电影亚洲天堂一区| 无码国产精品一区二区免费式直播| 成人羞羞网站入口| 青青草原一区二区| 天天综合天天干| 国产精品呻吟| 91久久夜色精品国产网站| 日韩欧美亚洲系列| 亚洲一卡二卡三卡四卡| 国产在线观看中文字幕| av资源久久| 欧美一区二区三区……| 蜜臀av免费在线观看| 亚洲欧美日韩中文播放| 伊人国产在线视频| 国产精品美女久久久久久不卡| 97精品久久久中文字幕免费| www.精品久久| 亚洲免费av在线| 日韩av一卡二卡三卡| 第一会所sis001亚洲| 国产成人综合亚洲| 精品无吗乱吗av国产爱色| 欧美日韩久久久久| 男人亚洲天堂网| 九色丨蝌蚪丨成人| 久久男人的天堂| 丰满少妇xoxoxo视频| av电影在线观看不卡| 国产精彩视频一区二区| 一区二区三区视频播放| 久久99久国产精品黄毛片入口| av无码精品一区二区三区宅噜噜| 最新国产の精品合集bt伙计| 999一区二区三区| 亚洲一级大片| 欧美激情视频一区| 天堂v在线观看| 精品久久久久久| 成年人在线观看av| 首页欧美精品中文字幕| 日韩欧美亚洲日产国产| 成人免费视频观看| 久久伊人免费视频| 国产av精国产传媒| 性久久久久久久| 国产福利短视频| 老妇喷水一区二区三区| 亚洲精品日韩成人| 麻豆视频久久| 91精品91久久久久久| 欧美日韩伦理片| 欧美三级日韩三级国产三级| 国内毛片毛片毛片毛片毛片| 国产乱人伦偷精品视频不卡| 又大又硬又爽免费视频| 亚洲黄色录像| 国产精品自在线| 少女频道在线观看免费播放电视剧| 亚洲成人激情在线观看| 国产精品久久久久久久久久久久久久久久久 | 久久久久久97三级| 日本人69视频| 激情综合网址| 日韩高清三级| 粉嫩一区二区三区在线观看| 欧美黑人一级爽快片淫片高清| 天天摸夜夜添狠狠添婷婷| 欧美亚洲国产一区二区三区 | 国产999精品| 久久精品视频免费看| 亚洲成人亚洲激情| 一区二区不卡视频在线观看| 亚洲自拍偷拍九九九| 久久精品无码一区| 国产aⅴ综合色| 日韩视频在线免费看| 欧美阿v一级看视频| 蜜桃网站成人| 香蕉成人app| 国产精品白嫩初高中害羞小美女| a级片国产精品自在拍在线播放| 日韩av在线免费| 99国产精品欲| 欧美性欧美巨大黑白大战| 国产真实乱人偷精品视频| 国产精品你懂的在线| 欧美极品jizzhd欧美仙踪林| 日本va欧美va精品| 日韩欧美一区三区| 久久美女视频| 欧美日韩在线高清| 丁香婷婷成人| 成人性生交大片免费看视频直播| 亚洲第一av| 九九精品在线| 日本高清+成人网在线观看| 岛国成人毛片| 神马久久久久久| 午夜福利视频一区二区| 日韩免费电影一区| 91影院在线播放| 色婷婷综合久久久中文一区二区| 免费在线视频一区二区| 中文字幕中文字幕一区二区| 中文字幕在线免费看线人| 丰满少妇久久久久久久| 在线观看国产福利| 免费高清不卡av| www.玖玖玖| 99视频精品| 国产主播自拍av| 欧美日韩p片| 一级黄色录像免费看| 色97色成人| 亚洲精品一品区二品区三品区| 自拍视频一区| 久久精品国产美女| 99在线视频影院| 久久亚洲一区二区三区四区五区高| 国产精品一级伦理| 亚洲图片在线综合| 九九在线视频| 亚洲视频在线免费看| 国产裸舞福利在线视频合集| 亚洲午夜精品久久久久久久久久久久| 日本亚洲一区| 亚洲人成电影网站色| 久草在线免费福利资源| 亚洲欧美制服另类日韩| 欧美日韩国产综合视频| 亚洲免费电影一区| 国产高清一区在线观看| 一区二区三区在线播放欧美| 888av在线| www国产91| 在线不卡日本v二区707| 精品1区2区在线观看| 亚洲欧美强伦一区二区| 亚洲国产成人av在线| 手机福利在线| 91精品在线一区二区| 国产又爽又黄免费软件| 日韩一级成人av| 黄色一级大片在线免费看国产一| 欧美精品一区二区三区视频| 日韩精品视频无播放器在线看| 亚洲新中文字幕| 日韩三级影院| 欧美疯狂xxxx大交乱88av| 91桃色在线| 性欧美xxxx视频在线观看| 精品众筹模特私拍视频| 51午夜精品视频| 成人毛片免费| 国产91免费视频| 亚洲男人都懂第一日本| 日韩亚洲一区在线播放| 欧美va亚洲va日韩∨a综合色| 东北少妇不带套对白| 欧美一级专区| 极品粉嫩美女露脸啪啪| 成人av在线一区二区三区| 中文字幕 91| 国产精品一区二区视频| 三级黄色片网站| 国产精品欧美极品| 国产在线拍揄自揄拍| 欧美在线色视频| 亚洲国产www| 亚洲欧洲高清在线| 超碰免费在线播放| 茄子视频成人在线| www一区二区三区| 久久久久国产精品视频| 我不卡手机影院| 男人靠女人免费视频网站| 久草这里只有精品视频| 800av在线播放| 综合久久久久久| 亚洲黄色免费观看| 精品少妇一区二区三区在线播放| 国产精品麻豆一区二区三区| 欧美国产视频一区二区| 一二区成人影院电影网| 国产精品二区三区| 希岛爱理av一区二区三区| 免费看又黄又无码的网站| 国产综合久久久久影院| 天天躁日日躁aaaxxⅹ| 亚洲综合清纯丝袜自拍| 亚洲最新av网站| 亚洲色图av在线| 97天天综合网| 91传媒在线免费观看| 日韩欧美自拍| 国产淫片av片久久久久久| 成人在线综合网| 国产免费美女视频| 欧美亚洲动漫制服丝袜| 天堂v视频永久在线播放| 欧美黑人一级爽快片淫片高清| 亚洲网站免费| 亚洲在线观看一区| 日韩电影在线一区| 真人bbbbbbbbb毛片| 亚洲一区二区在线观看视频 | 国产精品久久久一区二区三区| 99re66热这里只有精品8| 成人在线观看a| 26uuu国产电影一区二区| 日本少妇毛茸茸高潮| 91精品啪在线观看国产60岁| 91在线免费看| 国产精品久久久久久久午夜| 精品国产一级毛片| 欧美极品欧美精品欧美图片| 91在线看国产| 永久免费看片在线播放| 精品国产精品网麻豆系列| 日本高清成人vr专区| 亚洲一区二区三区久久 | 自拍偷拍精品视频| 亚洲视屏在线播放| 日韩欧美精品一区二区综合视频| 欧美亚洲另类久久综合| 亚洲综合另类| 亚洲a v网站| 欧美性大战久久久久久久蜜臀 | 国产亚洲综合色| jizz国产在线观看| 亚洲日韩中文字幕| 日韩免费小视频| 亚洲成人一区二区三区| 蜜臀av一区二区在线免费观看| 2017亚洲天堂| 欧美剧情电影在线观看完整版免费励志电影| 国产精品久久一区二区三区不卡| 国产精品com| 久久亚洲精品中文字幕蜜潮电影| 亚洲一区日韩精品| 亚洲美女淫视频| 亚洲黄色小说网址| 97色在线播放视频| 国产精品三级| 成人黄色一级大片| 一区二区三区日本| 天天综合永久入口| 国产精品777| 亚洲电影影音先锋| 欧美日韩人妻精品一区在线| 好吊成人免视频| 337p日本欧洲亚洲大胆鲁鲁| 亚洲tv在线观看| 一本色道久久综合亚洲精品不卡 | 亚洲精品亚洲人成在线观看| 超碰av在线免费观看| 中文字幕日韩av资源站| 亚洲AV无码一区二区三区少妇| 91成人性视频| 欧美国产一区二区三区激情无套| 青青草原播放器| 欧美日韩国产一中文字不卡| 在线免费av网站| 超碰97在线资源| 日韩精品欧美| 深夜视频在线观看| 色丁香久综合在线久综合在线观看| 日本中文字幕视频在线| 国产亚洲精品久久飘花| 日本欧美一区二区三区| 91aaa在线观看| 亚洲午夜久久久影院| 日韩精品久久久久久久软件91| 欧美三级一级片| 亚洲天堂免费在线观看视频|