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

關(guān)于mysql 8.x 中insert ignore的性能問題

 更新時間:2022年08月25日 10:49:00   作者:真步  
這篇文章主要介紹了關(guān)于mysql 8.x 中insert ignore的性能問題,具有很好的參考價(jià)值,希望對大家有所幫助。

mysql 8.x中insert ignore性能問題

mysql中replace into效率很差,多進(jìn)程并發(fā)一下就會鎖表,所以應(yīng)該用on duplicate 來做更新,這是眾所周知的了。沒想到insert ignore也有性能坑,記錄下遇到的問題。

為了往一張表中插入初始化數(shù)據(jù),我開了10個進(jìn)程并發(fā)向數(shù)據(jù)庫中使用insert ignore插入數(shù)據(jù),每條insert ignore語句包含7行數(shù)據(jù)。沒想到上線開始跑腳本以后數(shù)據(jù)庫出現(xiàn)不少鎖表。根據(jù)innodb status log來看,鎖住的是表的自增id主鍵。

調(diào)試了半天之后發(fā)現(xiàn),原來是insert ignore的時候會對插入的每一行數(shù)據(jù)取S鎖做unique id的檢測,同時會對主鍵的自增id字段加寫意向鎖(insert intension),在unique key較為復(fù)雜的時候,檢測unique key的時候會一直占用主鍵的插入意向鎖,其他insert ignore也想給主鍵id加插入意向鎖,導(dǎo)致死鎖。

以上情況是在mysql 8.x中發(fā)現(xiàn)的,以前用低版本的mysql似乎沒遇到過相關(guān)問題,所以不清楚低版本mysql的insert ignore是否有坑,但是8.x的版本最好insert ignore不要插入多行數(shù)據(jù),尤其是unique key比較復(fù)雜的時候(有三四個字段共同組成)

mysql insert ignore()函數(shù)

INSERT IGNORE語句

當(dāng)您使用該INSERT語句向一個表中添加多行時,如果在處理過程中發(fā)生錯誤,則MySQL終止該語句并返回錯誤。結(jié)果,沒有行插入到表中。

但是,如果使用該insert ignore語句,則會忽略包含導(dǎo)致錯誤的無效數(shù)據(jù)的行,并將具有有效數(shù)據(jù)的行插入表中。

insert ignore into actor values (3,'ED','CHASE','2006-02-15 12:34:33')

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

相關(guān)文章

  • MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)

    MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn)

    這篇文章主要介紹了MySQL8.0.24版本Release Note的一些改進(jìn)點(diǎn),幫助大家更好的對新版本的MySQL進(jìn)行測試使用,感興趣的朋友可以了解下
    2021-04-04
  • windows10下mysql 8.0 下載與安裝配置圖文教程

    windows10下mysql 8.0 下載與安裝配置圖文教程

    這篇文章主要介紹了windows10下mysql 8.0 下載與安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Mysql單庫遷移的操作方法

    Mysql單庫遷移的操作方法

    這篇文章主要介紹了Mysql單庫遷移的相關(guān)知識,包括導(dǎo)出數(shù)據(jù)庫文件,上傳至目標(biāo)機(jī)器的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 在C#和MySQL中存取中文字符時避免亂碼的方法

    在C#和MySQL中存取中文字符時避免亂碼的方法

    這篇文章主要介紹了在C#和MySQL中存取中文字符時避免亂碼的方法,主要還是老辦法先轉(zhuǎn)換成Unicode編碼,需要的朋友可以參考下
    2015-05-05
  • MYSQL性能優(yōu)化分享(分庫分表)

    MYSQL性能優(yōu)化分享(分庫分表)

    MYSQL性能優(yōu)化之分庫分表與不停機(jī)修改mysql表結(jié)構(gòu),需要的朋友可以參考下
    2012-02-02
  • Centos7下安裝MySQL8.0.23的步驟(小白入門級別)

    Centos7下安裝MySQL8.0.23的步驟(小白入門級別)

    這篇文章主要介紹了Centos7下安裝MySQL8.0.23的步驟(小白入門級別),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    這篇文章主要介紹了Mysql中聚簇索引和非聚簇索引的區(qū)別詳解,聚簇索引就是按照每張表的主鍵構(gòu)造一顆B+樹,同時葉子節(jié)點(diǎn)中存放的就是整張表的行記錄數(shù)據(jù),也將聚集索引的葉子節(jié)點(diǎn)稱為數(shù)據(jù)頁,需要的朋友可以參考下
    2023-07-07
  • 一文搞懂Mysql數(shù)據(jù)庫中的各種日志

    一文搞懂Mysql數(shù)據(jù)庫中的各種日志

    MySQL日志的內(nèi)容非常重要,面試中經(jīng)常會被問到,下面這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫中各種日志的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-08-08
  • 同時運(yùn)行多個MySQL服務(wù)器的方法

    同時運(yùn)行多個MySQL服務(wù)器的方法

    在同一臺機(jī)器上運(yùn)行多個有些情況下你可能想要在同一臺機(jī)器上運(yùn)行多個服務(wù)器。例如,你可能想要測試一個新的MySQL版本而讓你現(xiàn)有生產(chǎn)系統(tǒng)的設(shè)置不受到干擾, 或你可能是想要為不同的客戶提供獨(dú)立的MySQL安裝一個因特網(wǎng)服務(wù)供應(yīng)商。
    2008-05-05
  • MySQL中CURRENT_TIMESTAMP的使用方式

    MySQL中CURRENT_TIMESTAMP的使用方式

    這篇文章主要介紹了MySQL中CURRENT_TIMESTAMP的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

平泉县| 嘉峪关市| 泰安市| 盖州市| 吉安县| 陵水| 大余县| 哈巴河县| 桐庐县| 新干县| 化隆| 高雄市| 宝丰县| 应城市| 沙洋县| 邯郸市| 金沙县| 古交市| 岢岚县| 鹤山市| 得荣县| 凤凰县| 潮州市| 扎鲁特旗| 大方县| 石楼县| 揭东县| 得荣县| 焉耆| 长兴县| 金湖县| 特克斯县| 门源| 南投市| 留坝县| 潮安县| 山阳县| 蓬莱市| 乐亭县| 淮南市| 钟山县|