最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql數(shù)據(jù)自增ID為2的解決方案

 更新時(shí)間:2022年12月27日 17:06:14   作者:qq_33508876  
這篇文章主要介紹了mysql數(shù)據(jù)自增ID為2的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql數(shù)據(jù)自增ID為2問(wèn)題

查看配置

show variables like '%increment%';

如果:

auto_increment_increment=2

執(zhí)行:

set @@global.auto_increment_increment = 1;?
set @@auto_increment_increment =1;

如果:

auto_increment_offset=2

執(zhí)行:

set @@global.auto_increment_offset =1;
set @@auto_increment_offset =1;

mysql自增id理解

1. 什么是自增id

自增ID是在設(shè)計(jì)表時(shí)如果將id字段的值設(shè)置為自增的形式也就是AUTO_INCREMENT,那么當(dāng)插入一行數(shù)據(jù)時(shí)就無(wú)需指定id,數(shù)據(jù)表會(huì)根據(jù)前一個(gè)id值+1進(jìn)行填充。

指定了AUTO_INCREMENT的列必須要建索引,一般把ID作為主鍵,這樣系統(tǒng)會(huì)自動(dòng)為ID建立索引。

2. 自增id的好處

(1)增加記錄時(shí),可以不用指定id字段,不用擔(dān)心主鍵重復(fù)問(wèn)題。

(2)數(shù)據(jù)庫(kù)自動(dòng)編號(hào),速度快,而且是增量增長(zhǎng),按順序存放,對(duì)于檢索非常有利;

(3)數(shù)字型,占用索引空間小,范圍查找與排序友好,在程序中傳遞也方便;

(4)避免像UUID這樣隨機(jī)字符串帶來(lái)的頁(yè)分裂問(wèn)題等

頁(yè)分裂問(wèn)題: 

 一頁(yè)總要被存滿,然后新開(kāi)一頁(yè)繼續(xù),這種行為被稱(chēng)作頁(yè)分裂。何時(shí)開(kāi)辟新的頁(yè),mysql規(guī)定了一個(gè)分裂因子,達(dá)到頁(yè)存儲(chǔ)空間的15/16則存到下一頁(yè)。頁(yè)分裂的存在可能極大影響性能維護(hù)索引的性能。通常提倡的是,設(shè)定一個(gè)無(wú)意義的整數(shù)自增索引,有利于索引存儲(chǔ) 

如果非自增或不是整數(shù)索引,如非自增整數(shù)、類(lèi)似MD5的字符串,以他們作為索引值時(shí),因?yàn)榇迦氲南乱粭l數(shù)據(jù)的值不一定比上一條大,甚至比當(dāng)前頁(yè)所有值都小,需要跑到前幾頁(yè)去比較而找到合適位置,InnoDB無(wú)法簡(jiǎn)單的把新行插入到上一行后面,而找到并插入索引后,可能導(dǎo)致該頁(yè)達(dá)到分裂因子閥值,需要頁(yè)分裂,進(jìn)一步導(dǎo)致后面所有的索引頁(yè)的分裂和排序,數(shù)據(jù)量小也許沒(méi)什么問(wèn)題,數(shù)據(jù)量大的話可能會(huì)浪費(fèi)大量時(shí)間,產(chǎn)生許多碎片。

3. 自增id的壞處

(1) 不具有連續(xù)性,表中auto_increment最大值被刪除,將不會(huì)被重用。就是說(shuō)會(huì)跳號(hào)(如果設(shè)定的auto_increment_increment是1,那么下一次插入的id值將會(huì)從被刪除的最大值算起,也就是被刪除的最大值+1)

(2)歷史數(shù)據(jù)表的主鍵id會(huì)與數(shù)據(jù)表的id重復(fù),兩張自增id做主鍵的表合并時(shí),id會(huì)有沖突,但如果各自的id還關(guān)聯(lián)了其他表,這就很不好操作。

(3) 很難處理分布式存儲(chǔ)的數(shù)據(jù)表,尤其是需要合并表的情況下

(4) 在系統(tǒng)集成或割接時(shí),如果新舊系統(tǒng)主鍵不同是數(shù)字型就會(huì)導(dǎo)致修改主鍵數(shù)據(jù)類(lèi)型,這也會(huì)導(dǎo)致其它有外鍵關(guān)聯(lián)的表的修改,后果同樣很?chē)?yán)重;

4. 當(dāng)自增id用完了怎么辦?

自增id的數(shù)據(jù)上限和受主鍵類(lèi)型的影響,當(dāng)自增id超過(guò)最大值,就會(huì)提示主鍵沖突,所以建議根據(jù)業(yè)務(wù)需求設(shè)置主鍵數(shù)據(jù)類(lèi)型,如果超過(guò)int 數(shù)值范圍,可以考慮bigint類(lèi)型(2^64-1)。

當(dāng)隱性的row_id用完,數(shù)據(jù)庫(kù)不會(huì)產(chǎn)生錯(cuò)誤,它會(huì)重新從0開(kāi)始覆蓋之前的數(shù)據(jù),這樣會(huì)導(dǎo)致數(shù)據(jù)丟失。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu上安裝MySQL+問(wèn)題處理+安全優(yōu)化

    Ubuntu上安裝MySQL+問(wèn)題處理+安全優(yōu)化

    這篇文章主要匯總介紹了Ubuntu上安裝MySQL+問(wèn)題處理+安全優(yōu)化的相關(guān)事項(xiàng),非常的細(xì)致全面,有需要的小伙伴可以參考下
    2016-03-03
  • SQL使用WHERE條件語(yǔ)句的項(xiàng)目實(shí)踐

    SQL使用WHERE條件語(yǔ)句的項(xiàng)目實(shí)踐

    本文將介紹WHERE子句中使用的通用語(yǔ)法,它還將概述如何在單個(gè)WHERE子句中組合多個(gè)搜索條件謂詞以更細(xì)粒度的方式過(guò)濾數(shù)據(jù),以及如何使用NOT操作符排除而不是包含滿足給定搜索條件的行,感興趣的可以了解一下
    2023-09-09
  • 磁盤(pán)已滿造成的mysql啟動(dòng)失敗問(wèn)題分享

    磁盤(pán)已滿造成的mysql啟動(dòng)失敗問(wèn)題分享

    這篇文章主要介紹了磁盤(pán)已滿造成的mysql啟動(dòng)失敗問(wèn)題分享,需要的朋友可以參考下
    2014-04-04
  • SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn)

    SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn)

    這篇文章主要介紹了SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn),GROUP BY 實(shí)質(zhì)是先排序后分組,遵照索引建的最佳左前綴。當(dāng)無(wú)法使用索引時(shí),增大max_length_for_sort_data和sort_buffer參數(shù)的值
    2023-01-01
  • Canal入門(mén)使用小結(jié)

    Canal入門(mén)使用小結(jié)

    Canal是一款MySQL數(shù)據(jù)庫(kù)增量日志解析工具,用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,本文主要介紹了Canal入門(mén)使用小結(jié),感興趣的可以了解一下
    2025-02-02
  • mysql 5.6.37(zip)下載安裝配置圖文教程

    mysql 5.6.37(zip)下載安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.6.37(zip)下載安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • mysql實(shí)現(xiàn)查詢(xún)每門(mén)課程成績(jī)最好的前兩名學(xué)生id和姓名

    mysql實(shí)現(xiàn)查詢(xún)每門(mén)課程成績(jī)最好的前兩名學(xué)生id和姓名

    這篇文章主要介紹了mysql實(shí)現(xiàn)查詢(xún)每門(mén)課程成績(jī)最好的前兩名學(xué)生id和姓名方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL5.7.18下載和安裝過(guò)程圖文詳解

    MySQL5.7.18下載和安裝過(guò)程圖文詳解

    本文通過(guò)圖文并茂的形式給大家介紹了MySQL5.7.18下載和安裝過(guò)程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-07-07
  • MySQL如何生成唯一的server-id

    MySQL如何生成唯一的server-id

    這篇文章主要給大家介紹了關(guān)于MySQL如何生成唯一的server-id的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Mysql更改默認(rèn)引擎為Innodb的步驟方法

    Mysql更改默認(rèn)引擎為Innodb的步驟方法

    mysql默認(rèn)是關(guān)閉InnoDB存儲(chǔ)引擎的使用的,而Mysql默認(rèn)引擎是MyISAM,而MyISAM并不支持事務(wù)處理,因?yàn)樽罱?xiàng)目中的需要所以要更換引擎,通過(guò)查找網(wǎng)上的資料后解決了,現(xiàn)在將步驟方法分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12

最新評(píng)論

德庆县| 富裕县| 化德县| 安图县| 鄂州市| 东兰县| 扶沟县| 嵊泗县| 英吉沙县| 贺兰县| 永昌县| 武清区| 广元市| 富蕴县| 巩留县| 靖安县| 定南县| 保定市| 黄石市| 浠水县| 耿马| 南京市| 射阳县| 长治市| 广德县| 泰州市| 高阳县| 阿图什市| 南投市| 洛隆县| 新兴县| 甘洛县| 东山县| 长春市| 邻水| 清流县| 神木县| 东乌珠穆沁旗| 思南县| 兖州市| 天柱县|