中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

如何查詢網(wǎng)站的建站工具seo門戶網(wǎng)站

如何查詢網(wǎng)站的建站工具,seo門戶網(wǎng)站,寧波個人做網(wǎng)站,沒網(wǎng)站怎么做cpa文章目錄 🛫索引🎍索引的概念🌳索引的作用🎄索引的使用場景🍀索引的使用📌查看索引📌創(chuàng)建索引🌲刪除索引 🌴索引保存的數(shù)據(jù)結構🎈B樹🎈B樹&#x…

文章目錄

  • 🛫索引
    • 🎍索引的概念
    • 🌳索引的作用
    • 🎄索引的使用場景
    • 🍀索引的使用
      • 📌查看索引
      • 📌創(chuàng)建索引
      • 🌲刪除索引
    • 🌴索引保存的數(shù)據(jù)結構
      • 🎈B樹
      • 🎈B+樹
      • 🎈問題解決
  • 🛬事務
    • ?事務的概念
    • ?事務需要滿足的四大條件
    • 🧭事務控制語句與簡單使用
    • 🥎事務的并發(fā)控制
    • 🏀封鎖
    • 🎡封鎖協(xié)議
  • ?總結

本節(jié)目標

  • 索引
  • 事務

🛫索引

🎍索引的概念

索引是一種特殊的文件,包含著對數(shù)據(jù)表里所有記錄的引用指針??梢詫Ρ碇械?mark>一列或多列創(chuàng)建索引,并指定索引的類型,各類索引有各自的數(shù)據(jù)結構實現(xiàn)

🌳索引的作用

MySQL 索引是一種數(shù)據(jù)結構,用于加快數(shù)據(jù)庫查詢的速度和性能。

MySQL 索引的建立對于 MySQL 的高效運行是很重要的,索引可以大大提高MySQL 的檢索速度。

  • MySQL 索引類似于書籍的索引,通過存儲指向數(shù)據(jù)行的指針,可以快速定位和訪問表中的特定數(shù)據(jù)。
  • 打個比方,如果合理的設計且使用索引的 MySQL 是一輛蘭博基尼的話,那么沒有設計和使用索引的 MySQL 就是一個人力三輪車。
  • 拿漢語字典的目錄頁(索引)打比方,我們可以按拼音、筆畫、偏旁部首等排序的目錄(索引)快速查找到需要的字。

在這里插入圖片描述

🎄索引的使用場景

創(chuàng)建索引時,你需要確保該索引是應用在 SQL 查詢語句的條件(一般作為WHERE 子句的條件)。

實際上,索引也是一張表,該表保存了主鍵與索引字段,并指向實體表的記錄。

索引雖然能夠提高查詢性能,但也需要注意以下幾點:

  • 索引需要占用額外的存儲空間。

  • 對表進行插入、更新和刪除操作時,索引需要維護,可能會影響性能。

  • 過多或不合理的索引可能會導致性能下降,因此需要謹慎選擇和規(guī)劃索引。

滿足以上條件時,考慮對表中的這些字段創(chuàng)建索引,以提高查詢效率。

反之,如果非條件查詢列,或經(jīng)常做插入、修改操作,或磁盤空間不足時,不考慮創(chuàng)建索引。

🍀索引的使用

創(chuàng)建主鍵約束(PRIMARY KEY)、唯一約束(UNIQUE)、外鍵約(FOREIGN KEY)時,會自動創(chuàng)建對應列的索引

接下里我們實現(xiàn)一些索引的基本操作和使用

📌查看索引

你可以使用 SHOW INDEX 命令來列出表中的相關的索引信息。

可以通過添加 \G 來格式化輸出信息。

SHOW INDEX 語句:

SHOW INDEX FROM table_name\G
  • SHOW INDEX: 用于顯示索引信息的關鍵字。

  • FROM table_name: 指定要查看索引信息的表的名稱。

  • \G: 格式化輸出信息。

執(zhí)行上述命令后,將會顯示指定表中所有索引的詳細信息

包括索引名稱(Key_name)、索引列(Column_name)、是否是唯一索引(Non_unique)、排序方式(Collation)、索引的基數(shù)(Cardinality)等。

這里博主查詢一個博主已經(jīng)建立好的一個student表的索引

案例查詢:查看學生表已有的索引,查詢結果如下
在這里插入圖片描述

📌創(chuàng)建索引

對于非主鍵、非唯一約束、非外鍵的字段,可以創(chuàng)建普通索引

使用 CREATE INDEX 語句可以創(chuàng)建普通索引。

普通索引是最常見的索引類型,用于加速對表中數(shù)據(jù)的查詢。

CREATE INDEX 的語法:

CREATE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);
  • CREATE INDEX: 用于創(chuàng)建普通索引的關鍵字。

  • index_name: 指定要創(chuàng)建的索引的名稱。索引名稱在表中必須是唯一的。

  • table_name: 指定要在哪個表上創(chuàng)建索引。

  • (column1, column2, …): 指定要索引的表列名。你可以指定一個或多個列作為索引的組合。這些列的數(shù)據(jù)類型通常是數(shù)值、文本或日期。

  • ASC和DESC(可選): 用于指定索引的排序順序。默認情況下,索引以升序(ASC)排序。

以下實例假設我們有一個名為 students 的表,包含 id、name 和 age 列,我們將在 name 列上創(chuàng)建一個普通索引。

CREATE INDEX idx_name ON students (name);

建立索引如下:
在這里插入圖片描述

🌲刪除索引

drop index 索引名 on 表名;

以下實例是我們對上述建立索引的一個刪除,刪除student表中name字段的索引

drop index inx_name on student;

刪除后,查詢結果如下:
在這里插入圖片描述

🌴索引保存的數(shù)據(jù)結構

索引保存的數(shù)據(jù)結構主要為B+樹

再介紹B+樹之前我們先來看一下,B樹,因為B+樹是在B樹的基礎上進行優(yōu)化的

🎈B樹

B樹與二叉樹(Binary Tree)不是一個概念,你可以將其翻譯成Balance Tree,或者是Bayer Tree。

B樹是一種自平衡的樹,能夠保持數(shù)據(jù)有序。這種數(shù)據(jù)結構能夠讓查找數(shù)據(jù)、順序訪問、插入數(shù)據(jù)及刪除的動作,都在對數(shù)時間內完成。

B樹與AVL樹不同,可以擁有2個以上的子節(jié)點,并且每個節(jié)點可以有多個鍵值,這些屬性減少了定位記錄時所經(jīng)歷的中間過程,加快了存取速度。B樹更適用于讀寫相對較大的數(shù)據(jù)塊存儲系統(tǒng),如磁盤。這種數(shù)據(jù)結構常被應用在數(shù)據(jù)庫和文件系統(tǒng)的實現(xiàn)上。
在這里插入圖片描述
對于一個M階B樹具有以下特性:

  • 每個節(jié)點最多有 M 個子節(jié)點;每個內部節(jié)點最少有 ?M/2? 個子節(jié)點(?x?為向上取整符號;如果根節(jié)點不是葉子節(jié)點,那么它至少有兩個子節(jié)點。

  • 具有 N 個子節(jié)點的非葉子節(jié)點擁有 N-1 個鍵。

  • 所有葉子節(jié)點必須處于同一層上。

🎈B+樹

是B-Tree的改進版本,同時也是數(shù)據(jù)庫索引索引所采用的存儲結構。數(shù)據(jù)都在葉子節(jié)點上,并且增加了順序訪問指針,每個葉子節(jié)點都指向相鄰的葉子節(jié)點的地址。相比B-Tree來說,進行范圍查找時只需要查找兩個節(jié)點,進行遍歷即可。而B-Tree需要獲取所有節(jié)點,相比之下B+Tree效率更高。

在這里插入圖片描述
那我們具體怎么存儲數(shù)據(jù)庫中的這些數(shù)據(jù)呢?

比如我們有以下這樣一張student表,主鍵為id
在這里插入圖片描述
MyISAM(MySQL的數(shù)據(jù)庫引擎)中是這樣存儲的
在這里插入圖片描述
在InnoDB中的實現(xiàn)
在這里插入圖片描述

🎈問題解決

問:為什么索引結構默認使用B-Tree,而不是hash,二叉樹,紅黑樹?

hash:雖然可以快速定位,但是沒有順序,IO復雜度高。
二叉樹:樹的高度不均勻,不能自平衡,查找效率跟數(shù)據(jù)有關(樹的高度),并且IO代價高。
紅黑樹:樹的高度隨著數(shù)據(jù)量增加而增加,IO代價高。

問:為什么官方建議使用自增長主鍵作為索引。

結合B+Tree的特點,自增主鍵是連續(xù)的,在插入過程中盡量減少頁分裂,即使要進行頁分裂,也只會分裂很少一部分。并且能減少數(shù)據(jù)的移動,每次插入都是插入到最后。總之就是減少分裂和移動的頻率。

問:B樹與B+樹的異同點

相同點

  • 一個節(jié)點可以存儲多個元素
  • 葉子節(jié)點是排序的
  • 每個節(jié)點中的元素, 也都按照從小到大的順序排列, 即: 左小右大。
  • 所有葉子節(jié)點都位于同一層,或者說根節(jié)點到每個葉子節(jié)點的長度都相同。
  • 根節(jié)點元素個數(shù): 1<= k <= m-1 (m表示階數(shù), 即: 一個節(jié)點最多有多少子節(jié)點)非根節(jié)點元素個數(shù): m/2 <= k <= m-

不同點

  • B+樹葉子節(jié)點是有指針的, MySQLInnoDB中采用的是雙向指針,上層非葉子節(jié)點也有雙向指針
  • B+樹非葉子節(jié)點的元素是與葉子節(jié)點有冗余重復的情況

🛬事務

?事務的概念

MySQL 事務主要用于處理操作量大,復雜度高的數(shù)據(jù)。比如說,在人員管理系統(tǒng)中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數(shù)據(jù)庫操作語句就構成一個事務!

  • 在 MySQL 中只有使用了 Innodb 數(shù)據(jù)庫引擎的數(shù)據(jù)庫或表才支持事務。

  • 事務處理可以用來維護數(shù)據(jù)庫的完整性,保證成批的 SQL 語句要么全部執(zhí)行,要么全部不執(zhí)行。

  • 事務用來管理 insert,update,delete 語句

?事務需要滿足的四大條件

  • 原子性:一個事務(transaction)中的所有操作,要么全部完成,要么全部不完成,不會結束在中間某個環(huán)節(jié)。事務在執(zhí)行過程中發(fā)生錯誤,會被回滾(Rollback)到事務開始前的狀態(tài),就像這個事務從來沒有執(zhí)行過一樣。

  • 一致性:在事務開始之前和事務結束以后,數(shù)據(jù)庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規(guī)則,這包含資料的精確度、串聯(lián)性以及后續(xù)數(shù)據(jù)庫可以自發(fā)性地完成預定的工作。

  • 隔離性:數(shù)據(jù)庫允許多個并發(fā)事務同時對其數(shù)據(jù)進行讀寫和修改的能力,隔離性可以防止多個事務并發(fā)執(zhí)行時由于交叉執(zhí)行而導致數(shù)據(jù)的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復讀(repeatable read)和串行化(Serializable)。

  • 持久性:事務處理結束后,對數(shù)據(jù)的修改就是永久的,即便系統(tǒng)故障也不會丟失

🧭事務控制語句與簡單使用

控制語句(部分)

  • BEGIN 或 START TRANSACTION 顯式地開啟一個事務;

  • COMMIT 也可以使用 COMMIT WORK,不過二者是等價的。COMMIT 會提交事務,并使已對數(shù)據(jù)庫進行的所有修改成為永久性的;

  • ROLLBACK 也可以使用 ROLLBACK WORK,不過二者是等價的?;貪L會結束用戶的事務,并撤銷正在進行的所有未提交的修改;

使用如下:

  1. 開啟事務:start transaction;
  2. 執(zhí)行多條SQL語句
  3. 回滾或提交:rollback/commit;
  • rollback即是全部失敗,commit即是全部成功

🥎事務的并發(fā)控制

數(shù)據(jù)庫是一個共享資源,可以供多個用戶使用。允許多個用戶同時使用一個數(shù)據(jù)庫的數(shù)據(jù)庫系統(tǒng)稱為多用戶數(shù)據(jù)庫系統(tǒng)。例如飛機訂票數(shù)據(jù)庫系統(tǒng)、銀行數(shù)據(jù)庫系統(tǒng)等都是多用戶數(shù)據(jù)庫系統(tǒng)。在這樣的系統(tǒng)中,在同一時刻并發(fā)執(zhí)行的事務數(shù)可達數(shù)百上千個。

而在面對這么多并發(fā)執(zhí)行的事務存在以下幾個問題

  • 丟失修改

兩個事務T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結果破壞了T1提交的結果,導致T1的修改被丟失

  • 不可重復讀

不可重復讀是指事務T1讀取數(shù)據(jù)后,事務T2執(zhí)行更新操作后,使T1無法再現(xiàn)前一次讀取結果

  • 讀“臟”數(shù)據(jù)

讀“臟”數(shù)據(jù)是指事務T1修改某以數(shù)據(jù)并將其寫回磁盤,事務T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時被T1修改過的數(shù)據(jù)恢復原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。

在這里插入圖片描述

🏀封鎖

封鎖是實現(xiàn)并發(fā)控制的一個重要技術。所謂的封鎖就是事務T在對某個數(shù)據(jù)對象,例如表、記錄等操作之前,先前系統(tǒng)發(fā)出請求,對其加鎖。

加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它之前,其他事務不能更新此數(shù)據(jù)對象。

確切的控制由封鎖的類型決定。基本的封鎖的類型由兩種:排他鎖(exclusive locks,簡稱X鎖)和共享鎖(share locks,簡稱S鎖)

  • 排他鎖又稱為寫鎖。若事務T對數(shù)據(jù)對象A加上X鎖,則只允許工讀取和修改Ar其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖為止。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。

  • 共享鎖稱為讀鎖。若事務 T對數(shù)據(jù)對象A加上S鎖,則事務工可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖為止。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

🎡封鎖協(xié)議

在運用X鎖和S鎖這種基本封鎖對數(shù)據(jù)對象加鎖時,還需要約定一些規(guī)則。例如何時申請X鎖或S鎖、封鎖時間、何時釋放等,這些規(guī)則稱為封鎖協(xié)議。對封鎖方式制定不通的規(guī)則,就形成了各種不同的封鎖協(xié)議。

  • 一級封鎖協(xié)議

一級封鎖協(xié)議是指,事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結束才釋放。事務結束包括正常結束(COMMIT)和正常結束(ROLLBACK)。

一級封鎖協(xié)議可防止丟失修改,并保證事務T是可恢復的,可解決丟失修改問題

  • 二級封鎖協(xié)議

二級封鎖協(xié)議是指,在一級封鎖協(xié)議基礎上增加事務在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。

二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀“臟”數(shù)據(jù)

  • 三級封鎖協(xié)議

三級封鎖協(xié)議是指,在一級封鎖協(xié)議的基礎上增加事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結束才釋放。三級封鎖協(xié)議除了防止丟失修改和讀“臟”數(shù)據(jù)外、還進一步防止了不可重復讀

?總結

關于《【MySQL】 MySQL索引事務》就講解到這兒,感謝大家的支持,歡迎各位留言交流以及批評指正,如果文章對您有幫助或者覺得作者寫的還不錯可以點一下關注,點贊,收藏支持一下!

http://www.risenshineclean.com/news/37525.html

相關文章:

  • 溫州網(wǎng)站建設成功案例山西seo基礎教程
  • 學院網(wǎng)站的作用中國疫情最新數(shù)據(jù)
  • 觸屏版網(wǎng)站開發(fā)樣式互聯(lián)網(wǎng)推廣與營銷
  • 沒有網(wǎng)站可以做淘寶客嗎搜索引擎的設計與實現(xiàn)
  • 做招商類型的網(wǎng)站怎么制作網(wǎng)站二維碼
  • 江西省住房和城鄉(xiāng)建設部網(wǎng)站市場營銷推廣方案
  • 中國做國外的網(wǎng)站廣東疫情最新消息今天又封了
  • 做網(wǎng)站主流軟件是php嗎什么是淘寶seo
  • 公司做網(wǎng)站推廣的價格鄭州網(wǎng)絡推廣方案
  • 怎樣登陸wordpress短視頻seo詢盤獲客系統(tǒng)軟件
  • 遵義做網(wǎng)站哪個公司最好百度推廣優(yōu)化怎么做的
  • 網(wǎng)站建設內容錄入論文百度如何收錄網(wǎng)站
  • b站破解2023免費版下載抖音企業(yè)推廣
  • 做電商網(wǎng)站價錢16種營銷模型
  • 怎樣做淘寶網(wǎng)站建設電商網(wǎng)站平臺搭建
  • 做網(wǎng)站 當站長紹興seo排名外包
  • 給政府做網(wǎng)站怎么報價深圳網(wǎng)站建設服務
  • 青島網(wǎng)站站長之家權重查詢
  • 網(wǎng)站會員功能長春seo排名
  • 用vue框架做的網(wǎng)站網(wǎng)站建設網(wǎng)站
  • 網(wǎng)站開發(fā)技術路線網(wǎng)站制作流程和方法
  • 關于政府補貼企業(yè)做網(wǎng)站的事免費推廣引流平臺
  • 精品課程網(wǎng)站建設 碧輝騰樂發(fā)稿網(wǎng)
  • 網(wǎng)站的外鏈是什么做網(wǎng)站公司哪家正規(guī)
  • 如何用網(wǎng)頁設計制作個人網(wǎng)站seo優(yōu)化包括
  • 純色直播河南seo外包
  • android 做分享的網(wǎng)站seo的中文含義是
  • 做網(wǎng)站買了域名之后谷歌搜索官網(wǎng)
  • 學做網(wǎng)站平臺建立網(wǎng)站需要多少錢
  • 推廣方案如何寫南京網(wǎng)絡優(yōu)化公司有哪些