欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

mysql 8.x中insert ignore性能問(wèn)題

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

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

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

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

mysql insert ignore()函數(shù)

INSERT IGNORE語(yǔ)句

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

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

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

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

相關(guān)文章

  • MySQL安裝配置以及安裝失敗解決過(guò)程

    MySQL安裝配置以及安裝失敗解決過(guò)程

    我們?cè)谙螺d完MYSQL時(shí),安裝可能會(huì)遇到或大或小的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于MySQL安裝配置以及安裝失敗解決的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Lost connection to MySQL server during query的解決

    Lost connection to MySQL server during query的解決

    經(jīng)常在執(zhí)行sql語(yǔ)句時(shí),會(huì)發(fā)現(xiàn)這個(gè)問(wèn)題,一般就是連接mysql數(shù)據(jù)庫(kù)不穩(wěn)定
    2008-06-06
  • MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    mybatis將本地的數(shù)據(jù)傳入到mysql數(shù)據(jù)庫(kù)服務(wù)器的時(shí)候,服務(wù)器會(huì)對(duì)數(shù)據(jù)進(jìn)行檢測(cè),會(huì)把date類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為mysql服務(wù)器所對(duì)應(yīng)的時(shí)區(qū),即0時(shí)區(qū),所以會(huì)相差8小時(shí),本文給大家介紹了MySQL時(shí)區(qū)差8小時(shí)的問(wèn)題解決方法,需要的朋友可以參考下
    2024-01-01
  • SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解

    SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • mysql5.7.18安裝時(shí)提示無(wú)法找到入口問(wèn)題的解決方法

    mysql5.7.18安裝時(shí)提示無(wú)法找到入口問(wèn)題的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.18安裝時(shí)出現(xiàn)無(wú)法找到入口問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 面試官問(wèn)我Mysql的存儲(chǔ)引擎了解多少

    面試官問(wèn)我Mysql的存儲(chǔ)引擎了解多少

    mysql面試中最常問(wèn)的問(wèn)題之一:小伙子,你說(shuō)一下你們公司用的存儲(chǔ)引擎,以及你知道有哪些存儲(chǔ)引擎和他們之間的區(qū)別? 所以下面這篇文章主要給大家介紹了關(guān)于Mysql存儲(chǔ)引擎的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 帶你了解MySQL中的事件調(diào)度器EVENT

    帶你了解MySQL中的事件調(diào)度器EVENT

    這篇文章主要介紹了帶你了解MySQL中的事件調(diào)度器EVENT,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    這篇文章主要介紹了PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程,就像普通程序中的用戶注冊(cè)功能那樣為用戶登陸數(shù)據(jù)信息建立一個(gè)數(shù)據(jù)庫(kù)來(lái)進(jìn)行驗(yàn)證,需要的朋友可以參考下
    2015-12-12
  • 在OneProxy的基礎(chǔ)上實(shí)行MySQL讀寫分離與負(fù)載均衡

    在OneProxy的基礎(chǔ)上實(shí)行MySQL讀寫分離與負(fù)載均衡

    基于Libevent機(jī)制實(shí)現(xiàn),單個(gè)實(shí)例可以實(shí)現(xiàn)25萬(wàn)的SQL轉(zhuǎn)發(fā)能力,用一個(gè)OneProxy節(jié)點(diǎn)可以帶動(dòng)整個(gè)MySQL集群,為業(yè)務(wù)發(fā)展貢獻(xiàn)一份力量,下面由小編來(lái)為大家簡(jiǎn)單說(shuō)說(shuō)
    2019-05-05
  • MYSQL 淺談MyISAM 存儲(chǔ)引擎

    MYSQL 淺談MyISAM 存儲(chǔ)引擎

    mysql中用的最多存儲(chǔ)引擎就是innodb和myisam。做為Mysql的默認(rèn)存儲(chǔ)引擎,myisam值得我們學(xué)習(xí)一下,以下是我對(duì)《高性能MYSQL》書中提到的myisam的理解,請(qǐng)大家多多指教
    2012-04-04

最新評(píng)論