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

認知:MySQL創建索引時不鎖表?

數據庫 MySQL
在 MySQL 5.6 之前,創建索引時會鎖表,但在 MySQL 5.6.7 之后,因為新增了 Online DDL 技術,所以此時在添加索引時,是可以和 DML 數據操作語言 INSERT、UPDATE、DELETE、SELECT 等命令一起執行的。

索引主要是用于提高數據檢索速度的一種機制,通過索引數據庫可以快速定位到目標數據的位置,而不需要遍歷整個數據集,它就像書籍的目錄部分,有它的存在,可以大大加速查詢的效率。

那么問題來了:在創建索引時一定會鎖表嗎?

如果你看的是網上的一些資料,或者是通過 chatgpt,那么很可能得到的結果是這樣的“是的,創建索引時是會鎖表的?!?,但這個回答是不正確的,為什么呢?

典型回答

因為在 MySQL 5.6 之前,創建索引時會鎖表。所以,在早期 MySQL 版本中一定要在線上慎用,因為創建索引時會導致其他會話阻塞(select 查詢命令除外)。

但這個問題,在 MySQL 5.6.7 版本中得到了改變,因為在 MySQL 5.6.7 中引入了 Online DDL 技術(在線 DDL 技術),它允許在創建索引時,不阻塞其他會話(所有的 DML 操作都可以一起并發執行)。

也就是說 MySQL 5.6.7 之前的版本創建索引是要鎖表的,而 MySQL 5.6.7+ 之后創建索引就不再鎖表了。 

什么是 DDL?

DDL(Data Definition Language,數據庫定義語言):用于定義和管理數據庫的結構,它主要包括以下語句:

  • CREATE:用于創建數據庫、表、索引、視圖等對象。
  • ALTER:用于修改數據庫、表、索引、視圖等已存在的對象的結構。
  • DROP:用于刪除數據庫、表、索引、視圖等對象。
  • TRUNCATE:用于刪除表中的所有數據,但保留表的結構。
  • RENAME:用于重命名數據庫、表等對象。

什么是 DML?

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

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

什么是 Online DDL?

Online DDL(Online Data Definition Language,在線數據定義語言)是指在數據庫運行期間執行對表結構或其他數據庫對象的更改操作,而不需要中斷或阻塞其他正在進行的事務和查詢。

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

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

圖片圖片

簡單翻譯一下以上內容:

圖片圖片

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

小結

在 MySQL 5.6 之前,創建索引時會鎖表,但在 MySQL 5.6.7 之后,因為新增了 Online DDL 技術,所以此時在添加索引時,是可以和 DML 數據操作語言  INSERT、UPDATE、DELETE、SELECT 等命令一起執行的。

責任編輯:武曉燕 來源: 磊哥和Java
相關推薦

2024-06-20 12:38:07

2023-12-25 09:03:33

MySQL索引數據庫

2021-06-26 08:09:21

MySQL不停機不鎖表

2024-10-08 09:35:23

2024-06-03 00:00:01

索引MySQL技術

2010-11-16 10:21:25

Oracle創建表

2010-11-22 14:27:05

MySQL鎖表

2025-02-14 10:03:40

2022-02-24 07:48:47

MySQL索引查詢

2024-11-29 07:38:12

MySQL數據庫

2024-05-20 09:58:27

2024-07-16 08:03:43

2025-02-10 09:58:48

2020-10-20 13:50:47

MySQL數據庫

2010-05-24 12:50:59

MySQL表級鎖

2010-06-12 10:10:55

2010-11-24 10:05:20

mysql創建臨時表

2024-03-04 00:01:00

鎖表鎖行MySQL

2021-11-09 07:59:50

開發

2019-06-03 15:15:09

MySQL索引數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情91久久精品导航 | 日韩一级一区 | 欧美在线a | caoporn国产| 亚洲精品aⅴ | 国产日韩精品久久 | 日韩av电影在线观看 | 欧美性猛片aaaaaaa做受 | 国产999精品久久久 精品三级在线观看 | 成人在线观看亚洲 | 日韩久久精品 | 久久精品国产一区二区三区不卡 | 国产日韩视频在线 | 国产色| 久久久久免费精品国产 | 久久久观看 | 精品国产乱码久久久久久闺蜜 | 精品国产一区二区三区久久久四川 | 日本不卡免费新一二三区 | 日本免费一区二区三区 | 日韩欧美一区二区三区四区 | 国产一区二区在线免费播放 | 一区二区三区回区在观看免费视频 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美精品一区在线发布 | 在线免费观看黄色 | 亚洲日本视频 | 国产精品91久久久久久 | 国久久 | 久久99精品久久久久久 | 午夜小视频在线播放 | 欧美一区不卡 | 精品国产一区二区在线 | 久久久久一区二区三区四区 | 成人h动漫亚洲一区二区 | 久久躁日日躁aaaaxxxx | 夜久久| 91久久夜色精品国产网站 | 国产自产21区 | 午夜精品一区二区三区免费视频 | 亚洲国产一区在线 |