婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談MySQL中的自增主鍵用完了怎么辦

淺談MySQL中的自增主鍵用完了怎么辦

熱門標簽:信陽穩定外呼系統運營商 百度地圖圖標標注中心 南通自動外呼系統軟件 芒果電話機器人自動化 廣東人工電話機器人 申請外呼電話線路 日照旅游地圖標注 石家莊電商外呼系統 湖南人工外呼系統多少錢

在面試中,大家應該經歷過如下場景

面試官:"用過mysql吧,你們是用自增主鍵還是UUID?"   

你:"用的是自增主鍵"    

面試官:"為什么是自增主鍵?"    

你:"因為采用自增主鍵,數據在物理結構上是順序存儲,性能最好,blabla…"    

面試官:"那自增主鍵達到最大值了,用完了怎么辦?"    

你:"what,沒復習啊!!"    (然后,你就可以回去等通知了!)

這個問題是一個粉絲給我提的,我覺得挺有意(KENG)思(B)!
于是,今天我們就來談一談,這個自增主鍵用完了該怎么辦!

正文

簡單版

我們先明白一點,在mysql中,Int整型的范圍如下

我們以無符號整型為例,存儲范圍為0~4294967295,約43億!我們先說一下,一旦自增id達到最大值,此時數據繼續插入是會報一個主鍵沖突異常如下所示

//Duplicate entry '4294967295' for key 'PRIMARY'

那解決方法也是很簡單的,將Int類型改為BigInt類型,BigInt的范圍如下

就算你每秒10000條數據,跑100年,單表的數據也才
10000*24*3600*365*100=31536000000000
這數字距離BigInt的上限還差的遠,因此你將自增ID設為BigInt類型,你是不用考慮自增ID達到最大值這個問題!
然而,如果你在面試中的回答如果是

你:"簡單啊,把自增主鍵的類型改為BigInt類型就好了!"

接下來,面試官可以問你一個更坑的問題!

面試官:"你在線上怎么修改列的數據類型的?"   

你:"what!我還是回等通知吧!"

怎么改

目前業內在線修改表結構的方案,據我了解,一般有如下三種

方式一:使用mysql5.6+提供的在線修改功能

所謂的mysql自己提供的功能也就是mysql自己原生的語句,例如我們要修改原字段名稱及類型。

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

那么,在mysql5.5這個版本之前,這是通過臨時表拷貝的方式實現的。執行ALTER語句后,會新建一個帶有新結構的臨時表,將原表數據全部拷貝到臨時表,然后Rename,完成創建操作。這個方式過程中,原表是可讀的,不可寫。
在5.6+開始,mysql支持在線修改數據庫表,在修改表的過程中,對絕大部分操作,原表可讀,也可以寫。
那么,對于修改列的數據類型這種操作,原表還能寫么?來來來,特意去官網找了mysql8.0版本的一張圖

如圖所示,對于修改數據類型這種操作,是不支持并發的DML操作!也就是說,如果你直接使用ALTER這樣的語句在線修改表數據結構,會導致這張表無法進行更新類操作(DELETEUPDATEDELETE)。
因此,直接ALTER是不行滴!

那我們只能用方式二或者方式三

方式二:借助第三方工具

業內有一些第三方工具可以支持在線修改表結構,使用這些第三發工具,能夠讓你在執行ALTER操作的時候,表不會阻塞!比較出名的有兩個

  • pt-online-schema-change,簡稱pt-osc
  • GitHub正式宣布以開源的方式發布的工具,名為gh-ost

pt-osc為例,它的原理如下

1、創建一個新的表,表結構為修改后的數據表,用于從源數據表向新表中導入數據。

2、創建觸發器,用于記錄從拷貝數據開始之后,對源數據表繼續進行數據修改的操作記錄下來,用于數據拷貝結束后,執行這些操作,保證數據不會丟失。

3、拷貝數據,從源數據表中拷貝數據到新表中。

4、rename源數據表為old表,把新表rename為源表名,并將old表刪除。

5、刪除觸發器。

然而這兩個有意(KENG)思(B)的工具,居然。。。居然。。。唉!如果你的表里有觸發器和外鍵,這兩個工具是不行滴!
如果真碰上了數據庫里有觸發器和外鍵,只能硬杠了,請看方式三
方式三:改從庫表結構,然后主從切換
此法極其麻煩,需要專業水平的選手進行操作。因為我們的mysql架構一般是讀寫分離架構,從機是用來讀的。我們直接在從庫上進行表結構修改,不會阻塞從庫的讀操作。改完之后,進行主從切換即可。唯一需要注意的是,主從切換過程中可能會有數據丟失的情況!

高深版

其實答完上面的問題后,這篇文章差不多完了。但是,還記得我在開頭說的么。這是一個很有意(KENG)思(B)的問題,為什么呢?
假設啊,你的表里的自增字段為有符號的Int類型的,也就是說,你的字段范圍為-2147483648到2147483648。
一切又那么剛好,你的自增ID是從0開始的,也就是說,現在你的可以用的范圍為0~2147483648。
我們明確一點,表中真實的數據ID,肯定會出現一些意外,ID不一定是連續的。例如,有如下情形的出現

CREATE TABLE `t` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`),
) EN

執行下列SQL

insert into t values(null);
// 插入的行是 (1)
begin;
insert into t values(null);
rolllack;
insert into t values(null);
// 插入的行是 (3)

因此,表中的真實id必然會出現斷續的情況。
好,那這會你的自增主鍵id的數據范圍為0~2147483648,也就是單表21億條數據!考慮id會出現斷續,真實數據頂多18億條吧。
老哥,都單表18億條了,還不分庫分表?你一旦分庫分表了,就不能依賴于每個表的自增ID來全局唯一標識這些數據了。此時,我們就需要提供一 個全局唯一的ID號生成策略來支持分庫分表的環境。

因此在實際中,你根本等不到自增主鍵用完到情形!因此,專業版回答如下:

面試官:"那自增主鍵達到最大值了,用完了怎么辦?"   

你:"這問題沒遇到過,因為自增主鍵我們用int類型,一般達不到最大值,我們就分庫分表了,所以不曾遇見過!"

到此這篇關于淺談MySQL中的自增主鍵用完了怎么辦的文章就介紹到這了,更多相關MySQL 自增主鍵用完內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL中的主鍵以及設置其自增的用法教程
  • mysql修改自增長主鍵int類型為char類型示例
  • MySQL的自增ID(主鍵) 用完了的解決方法
  • MySQL8新特性:自增主鍵的持久化詳解
  • mysql非主鍵自增長用法實例分析
  • Mysql自增主鍵id不是以此逐級遞增的處理
  • 詳解MySQL自增主鍵的實現
  • 為什么mysql自增主鍵不是連續的

標簽:惠州 呼和浩特 牡丹江 公主嶺 沈陽 天津 阿里 合肥

巨人網絡通訊聲明:本文標題《淺談MySQL中的自增主鍵用完了怎么辦》,本文關鍵詞  淺談,MySQL,中的,自增,主鍵,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談MySQL中的自增主鍵用完了怎么辦》相關的同類信息!
  • 本頁收集關于淺談MySQL中的自增主鍵用完了怎么辦的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲综合激情网| 成人激情动漫在线观看| 欧美日韩激情一区| 日韩电影在线看| 亚洲人成在线观看一区二区| 日韩午夜激情免费电影| eeuss鲁片一区二区三区| 免费高清在线视频一区·| 亚洲欧美偷拍三级| 国产精品女人毛片| 日韩女优电影在线观看| 色女孩综合影院| 95精品视频在线| 免费成人在线播放| 五月婷婷激情综合网| 亚洲女同一区二区| 国产精品你懂的在线| 欧美成人性战久久| 欧美一区二区在线免费播放| 欧美剧在线免费观看网站| 欧美精品欧美精品系列| 91精品在线麻豆| 欧美变态口味重另类| 亚洲精品在线网站| 久久久久久久久99精品| 欧美高清一级片在线观看| 久久久精品国产免费观看同学| 久久综合给合久久狠狠狠97色69| 精品国产亚洲在线| 26uuu另类欧美| 欧美极品美女视频| 亚洲欧美在线aaa| 一个色综合av| 日本欧美韩国一区三区| 狠狠v欧美v日韩v亚洲ⅴ| 成人av免费在线播放| 亚洲gay无套男同| 青青草97国产精品免费观看无弹窗版| 石原莉奈一区二区三区在线观看| 日韩—二三区免费观看av| 美女一区二区三区| 成人免费毛片高清视频| 91美女蜜桃在线| 7777精品伊人久久久大香线蕉的| 精品成人私密视频| 亚洲视频精选在线| 首页亚洲欧美制服丝腿| 蜜臀99久久精品久久久久久软件| 国产成人免费视频网站| 91丨九色丨蝌蚪富婆spa| 欧美日韩一区二区三区视频 | 日本欧美大码aⅴ在线播放| 亚洲午夜久久久久久久久久久| 视频一区二区中文字幕| 美女视频网站久久| 91麻豆.com| 久久亚区不卡日本| 国产精品美女久久福利网站| 亚洲一区二区黄色| 国产另类ts人妖一区二区| 91蜜桃视频在线| 国产亚洲精品中文字幕| 亚洲欧美日韩一区二区三区在线观看 | 久久九九久精品国产免费直播| 国产精品毛片久久久久久久| 亚洲超碰97人人做人人爱| 成人黄色片在线观看| 91精品国产日韩91久久久久久| 国产农村妇女毛片精品久久麻豆 | 在线免费观看日韩欧美| 7777精品伊人久久久大香线蕉 | 久久国产精品99久久久久久老狼| jiyouzz国产精品久久| 欧美丰满少妇xxxxx高潮对白| 3d动漫精品啪啪一区二区竹菊| 国产精品九色蝌蚪自拍| 国产精品99久久久久久似苏梦涵| 色素色在线综合| 久久久精品2019中文字幕之3| 亚洲成人av福利| 成人小视频在线| 久久色.com| 国产精品影视网| 久久久久久免费网| 国产综合色视频| 久久噜噜亚洲综合| 久草中文综合在线| 日韩精品一区二区三区在线播放| 亚洲精品欧美激情| 国产精品伦一区| 国产91丝袜在线18| 国产亚洲美州欧州综合国| 国产一区二区三区| 精品裸体舞一区二区三区| 免费成人在线视频观看| 日韩一级在线观看| 另类小说色综合网站| 日韩一级成人av| 久久国产免费看| 久久蜜桃一区二区| 成人美女视频在线观看18| 国产精品天天摸av网| 成人午夜在线免费| 成人免费一区二区三区在线观看| 99久久精品国产一区二区三区| 中文字幕在线不卡国产视频| 91免费看`日韩一区二区| 亚洲午夜羞羞片| 欧美一区二区视频观看视频| 久久国产三级精品| 国产精品入口麻豆原神| 99精品黄色片免费大全| 亚洲激情成人在线| 日韩亚洲欧美在线观看| 国产一区二区三区四区在线观看| 久久精品夜色噜噜亚洲aⅴ| 成人aa视频在线观看| 一区二区三区中文字幕在线观看| 欧美日韩一区视频| 国产一区 二区| 亚洲伦理在线免费看| 欧美一区二区大片| 国产91精品精华液一区二区三区 | 亚洲18影院在线观看| 日韩精品专区在线| 成人avav在线| 奇米一区二区三区| 国产精品久久看| 在线电影一区二区三区| 国产精品66部| 天堂一区二区在线| 亚洲国产精品国自产拍av| 欧美日本在线一区| 成人在线视频一区二区| 一区二区高清在线| 久久久国产精华| 欧美精品国产精品| av毛片久久久久**hd| 另类欧美日韩国产在线| 亚洲精品日日夜夜| 国产三级三级三级精品8ⅰ区| 91国偷自产一区二区开放时间| 精品一区二区三区的国产在线播放| 国产精品久久久久久久久久久免费看 | 成人免费视频caoporn| 日本成人在线一区| 亚洲男人天堂av网| 国产目拍亚洲精品99久久精品| 欧美综合天天夜夜久久| 在线一区二区三区| 国产福利电影一区二区三区| 香蕉加勒比综合久久| 国产精品电影一区二区三区| 精品国产免费一区二区三区四区| 欧美探花视频资源| 99久久精品国产一区| 国产精华液一区二区三区| 日韩av一区二区在线影视| 亚洲欧美日韩综合aⅴ视频| 日本一区二区三区视频视频| 日韩三级在线观看| 在线不卡一区二区| 欧美在线观看视频一区二区三区| 粉嫩av一区二区三区粉嫩| 国产裸体歌舞团一区二区| 日韩av不卡一区二区| 天堂精品中文字幕在线| 亚洲国产精品一区二区久久恐怖片 | 亚洲图片一区二区| 亚洲免费三区一区二区| 国产精品久线观看视频| 中文字幕巨乱亚洲| 中文字幕成人在线观看| 国产精品嫩草99a| 精品一区二区在线视频| 亚洲国产中文字幕在线视频综合| 亚洲欧美另类在线| 亚洲美腿欧美偷拍| 亚洲黄色av一区| 亚洲激情综合网| 亚洲视频精选在线| 亚洲精品成人少妇| 天天综合日日夜夜精品| 日本欧美在线看| 麻豆一区二区三区| 国产又黄又大久久| 国产成人精品三级| 99久久国产综合精品女不卡| www.综合网.com| 欧美曰成人黄网| 欧美另类高清zo欧美| 日韩精品最新网址| 日本一二三不卡| 亚洲地区一二三色| 精品中文字幕一区二区| 丰满白嫩尤物一区二区| 色综合视频一区二区三区高清| 欧美性一级生活| 精品国产1区二区| 中文字幕一区二区不卡|