成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

認(rèn)知:MySQL創(chuàng)建索引時(shí)不鎖表?

數(shù)據(jù)庫(kù) MySQL
在 MySQL 5.6 之前,創(chuàng)建索引時(shí)會(huì)鎖表,但在 MySQL 5.6.7 之后,因?yàn)樾略隽?Online DDL 技術(shù),所以此時(shí)在添加索引時(shí),是可以和 DML 數(shù)據(jù)操作語(yǔ)言 INSERT、UPDATE、DELETE、SELECT 等命令一起執(zhí)行的。

索引主要是用于提高數(shù)據(jù)檢索速度的一種機(jī)制,通過(guò)索引數(shù)據(jù)庫(kù)可以快速定位到目標(biāo)數(shù)據(jù)的位置,而不需要遍歷整個(gè)數(shù)據(jù)集,它就像書(shū)籍的目錄部分,有它的存在,可以大大加速查詢的效率。

那么問(wèn)題來(lái)了:在創(chuàng)建索引時(shí)一定會(huì)鎖表嗎?

如果你看的是網(wǎng)上的一些資料,或者是通過(guò) chatgpt,那么很可能得到的結(jié)果是這樣的“是的,創(chuàng)建索引時(shí)是會(huì)鎖表的。”,但這個(gè)回答是不正確的,為什么呢?

典型回答

因?yàn)樵?MySQL 5.6 之前,創(chuàng)建索引時(shí)會(huì)鎖表。所以,在早期 MySQL 版本中一定要在線上慎用,因?yàn)閯?chuàng)建索引時(shí)會(huì)導(dǎo)致其他會(huì)話阻塞(select 查詢命令除外)。

但這個(gè)問(wèn)題,在 MySQL 5.6.7 版本中得到了改變,因?yàn)樵?MySQL 5.6.7 中引入了 Online DDL 技術(shù)(在線 DDL 技術(shù)),它允許在創(chuàng)建索引時(shí),不阻塞其他會(huì)話(所有的 DML 操作都可以一起并發(fā)執(zhí)行)。

也就是說(shuō) MySQL 5.6.7 之前的版本創(chuàng)建索引是要鎖表的,而 MySQL 5.6.7+ 之后創(chuàng)建索引就不再鎖表了。 

什么是 DDL?

DDL(Data Definition Language,數(shù)據(jù)庫(kù)定義語(yǔ)言):用于定義和管理數(shù)據(jù)庫(kù)的結(jié)構(gòu),它主要包括以下語(yǔ)句:

  • CREATE:用于創(chuàng)建數(shù)據(jù)庫(kù)、表、索引、視圖等對(duì)象。
  • ALTER:用于修改數(shù)據(jù)庫(kù)、表、索引、視圖等已存在的對(duì)象的結(jié)構(gòu)。
  • DROP:用于刪除數(shù)據(jù)庫(kù)、表、索引、視圖等對(duì)象。
  • TRUNCATE:用于刪除表中的所有數(shù)據(jù),但保留表的結(jié)構(gòu)。
  • RENAME:用于重命名數(shù)據(jù)庫(kù)、表等對(duì)象。

什么是 DML?

DML (Data Manipulation Language,數(shù)據(jù)操作語(yǔ)言) :用于查詢和修改數(shù)據(jù),它主要包括以下語(yǔ)句:

  • INSERT:用于向表中插入新的數(shù)據(jù)行。
  • UPDATE:用于更新表中已存在的數(shù)據(jù)行。
  • DELETE:用于刪除表中的數(shù)據(jù)行。
  • SELECT:用于從表中檢索數(shù)據(jù)。雖然 SELECT 主要用于查詢,但某些包含數(shù)據(jù)修改的擴(kuò)展 SQL 功能(如 LIMIT、ORDER BY、GROUP BY 等)也屬于 DML 的范疇。

什么是 Online DDL?

Online DDL(Online Data Definition Language,在線數(shù)據(jù)定義語(yǔ)言)是指在數(shù)據(jù)庫(kù)運(yùn)行期間執(zhí)行對(duì)表結(jié)構(gòu)或其他數(shù)據(jù)庫(kù)對(duì)象的更改操作,而不需要中斷或阻塞其他正在進(jìn)行的事務(wù)和查詢。

Online DDL 官方介紹文檔:https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html

Online DDL 最重要操作定義如下:

圖片圖片

簡(jiǎn)單翻譯一下以上內(nèi)容:

圖片圖片

從上面的表格可以看出,有了 Online DDL 技術(shù)之后,在添加索引時(shí),會(huì)對(duì)原本進(jìn)行操作,并且允許和 DML(數(shù)據(jù)操作語(yǔ)言 INSERT、UPDATE、DELETE、SELECT)一起并發(fā)執(zhí)行了。

小結(jié)

在 MySQL 5.6 之前,創(chuàng)建索引時(shí)會(huì)鎖表,但在 MySQL 5.6.7 之后,因?yàn)樾略隽?Online DDL 技術(shù),所以此時(shí)在添加索引時(shí),是可以和 DML 數(shù)據(jù)操作語(yǔ)言  INSERT、UPDATE、DELETE、SELECT 等命令一起執(zhí)行的。

責(zé)任編輯:武曉燕 來(lái)源: 磊哥和Java
相關(guān)推薦

2024-06-20 12:38:07

2023-12-25 09:03:33

MySQL索引數(shù)據(jù)庫(kù)

2021-06-26 08:09:21

MySQL不停機(jī)不鎖表

2024-10-08 09:35:23

2024-06-03 00:00:01

索引MySQL技術(shù)

2010-11-16 10:21:25

Oracle創(chuàng)建表

2010-11-22 14:27:05

MySQL鎖表

2025-02-14 10:03:40

2024-11-29 07:38:12

MySQL數(shù)據(jù)庫(kù)

2022-02-24 07:48:47

MySQL索引查詢

2024-05-20 09:58:27

2024-07-16 08:03:43

2025-02-10 09:58:48

2010-06-12 10:10:55

2010-11-24 10:05:20

mysql創(chuàng)建臨時(shí)表

2024-03-04 00:01:00

鎖表鎖行MySQL

2020-10-20 13:50:47

MySQL數(shù)據(jù)庫(kù)

2010-05-24 12:50:59

MySQL表級(jí)鎖

2021-11-09 07:59:50

開(kāi)發(fā)

2019-06-03 15:15:09

MySQL索引數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日本韩国一区二区 | 久久69精品久久久久久久电影好 | 免费看爱爱视频 | 亚洲激情在线视频 | 日韩欧美中文字幕在线观看 | 欧美日韩毛片 | 成人性生交大片免费看中文带字幕 | av在线免费播放 | 成人免费毛片在线观看 | 99在线免费观看视频 | 精品久久久久国产免费第一页 | 免费小视频在线观看 | 天天躁日日躁狠狠很躁 | 日韩欧美精品在线 | 国产成人在线视频播放 | 欧美一极视频 | 毛片99 | 久久九九网站 | 鲁一鲁资源影视 | 81精品国产乱码久久久久久 | 91精品亚洲 | 涩涩视频在线观看 | 精品一区二区三区入口 | 伊人超碰| 久久精品免费一区二区三 | 青青久在线视频 | 天天插天天操 | 日韩免费视频一区二区 | 人人99 | 国产免费人成xvideos视频 | 91欧美 | 日韩久草 | 涩涩片影院| 亚洲精品乱 | 久久99深爱久久99精品 | 超碰最新在线 | 国产精品久久久久久久久久久久久久 | 国产一区二区在线播放 | 三级国产三级在线 | 国产精品久久久久久久久污网站 | 久久99精品国产99久久6男男 |