日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

被面試官PUA了:創建索引時一定會鎖表

來源: 責編: 時間:2023-12-25 09:34:22 272觀看
導讀索引主要是用于提高數據檢索速度的一種機制,通過索引數據庫可以快速定位到目標數據的位置,而不需要遍歷整個數據集,它就像書籍的目錄部分,有它的存在,可以大大加速查詢的效率。那么問題來了:在創建索引時一定會鎖表嗎?如果你

Irs28資訊網——每日最新資訊28at.com

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

那么問題來了:在創建索引時一定會鎖表嗎?Irs28資訊網——每日最新資訊28at.com

如果你看的是網上的一些資料,或者是通過 chatgpt,那么很可能得到的結果是這樣的“是的,創建索引時是會鎖表的。”,但這個回答是不正確的,為什么呢?Irs28資訊網——每日最新資訊28at.com

典型回答

因為在 MySQL 5.6 之前,創建索引時會鎖表,所以,在早期 MySQL 版本中一定要在線上慎用,因為創建索引時會導致其他會話阻塞(select 查詢命令除外)。Irs28資訊網——每日最新資訊28at.com

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

什么是 DDL?

DDL(Data Definition Language,數據庫定義語言):用于定義和管理數據庫的結構,它主要包括以下語句:Irs28資訊網——每日最新資訊28at.com

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

什么是 DML?

DML (Data Manipulation Language,數據操作語言) :用于查詢和修改數據,它主要包括以下語句:Irs28資訊網——每日最新資訊28at.com

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

什么是 Online DDL?

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

Online DDL 官方介紹文檔:https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.htmlIrs28資訊網——每日最新資訊28at.com

Online DDL 最重要操作定義如下:Irs28資訊網——每日最新資訊28at.com

Irs28資訊網——每日最新資訊28at.com

簡單翻譯一下以上內容:Irs28資訊網——每日最新資訊28at.com

Irs28資訊網——每日最新資訊28at.com

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

小結

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

本文鏈接:http://www.www897cc.com/showinfo-26-53337-0.html被面試官PUA了:創建索引時一定會鎖表

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 妙用 CSS counters 實現逐層縮進

下一篇: .NET Core下優秀的日志框架使用解析,附源代碼

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 永济市| 中阳县| 广安市| 聊城市| 宿松县| 兴安盟| 乌兰察布市| 贵州省| 哈密市| 泰安市| 莫力| 溆浦县| 嘉峪关市| 平罗县| 微山县| 朝阳县| 沐川县| 巫溪县| 武夷山市| 旬阳县| 休宁县| 宜昌市| 泌阳县| 邯郸县| 永仁县| 延长县| 河源市| 耒阳市| 龙州县| 兴宁市| 巍山| 和平区| 泰安市| 乐亭县| 安远县| 疏附县| 翁源县| 孟连| 抚远县| 驻马店市| 洪雅县|