溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQ中索引的實現(xiàn)方式

發(fā)布時間:2021-09-15 14:21:18 來源:億速云 閱讀:138 作者:chen 欄目:數(shù)據(jù)庫

這篇文章主要介紹“MySQ中索引的實現(xiàn)方式”,在日常操作中,相信很多人在MySQ中索引的實現(xiàn)方式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQ中索引的實現(xiàn)方式”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

首先,需要對相關(guān)背景知識進行了解:B-Tree & B+Tree、折半查找(Binary Search)、 數(shù)據(jù)庫的性能問題和數(shù)據(jù)的基本存儲結(jié)構(gòu)。下面做簡要分析:
  1.B-Tree & B+Tree
  http://en.wikipedia.org/wiki/B%2B_tree
  http://en.wikipedia.org/wiki/B-tree
  2.半查找(Binary Search)
  http://en.wikipedia.org/wiki/Binary_search_algorithm
  3.數(shù)據(jù)庫的性能問題
 ?、?磁盤IO性能非常低,嚴重的影響數(shù)據(jù)庫系統(tǒng)的性能。
 ?、?磁盤順序讀寫比隨機讀寫的性能高很多。
  4.數(shù)據(jù)的基本存儲結(jié)構(gòu)
 ?、俅疟P空間被劃分為許多大小相同的塊(Block)或者頁(Page).
  ② 一個表的這些數(shù)據(jù)塊以鏈表的方式串聯(lián)在一起。
  ③ 數(shù)據(jù)是以行(Row)為單位一行一行的存放在磁盤上的塊中,如圖所示.
 ?、?在訪問數(shù)據(jù)時,一次從磁盤中讀出或者寫入至少一個完整的Block。
  
  數(shù)據(jù)基本操作的實現(xiàn)
  基本操作包括:INSERT、UPDATE、DELETE、SELECT。
  1.SELECT
 ?、俣ㄎ粩?shù)據(jù)
  ② 讀出數(shù)據(jù)所在的塊,對數(shù)據(jù)加工
 ?、?返回數(shù)據(jù)給用戶
  2.UPDATE、DELETE
  ①定位數(shù)據(jù)
 ?、谧x出數(shù)據(jù)所在的塊,修改數(shù)據(jù)
 ?、蹖懟卮疟P
  3.INSERT
 ?、俣ㄎ粩?shù)據(jù)要插入的頁(如果數(shù)據(jù)需要排序)
  ②讀出要插入的數(shù)據(jù)頁,插入數(shù)據(jù).
  ③ 寫回磁盤
  如何定位數(shù)據(jù)?
  4.表掃描(Table Scan)
  從磁盤中依次讀出所有的數(shù)據(jù)塊,一行一行的進行數(shù)據(jù)匹配。
  時間復(fù)雜度 是O(n), 如果所有的數(shù)據(jù)占用了100個塊。盡管只查詢一行數(shù)據(jù),也需要讀出所有100個塊的數(shù)據(jù)。
   需要大量的磁盤IO操作,極大的影響了數(shù)據(jù)定位的性能。
  因為數(shù)據(jù)定位操作是所有數(shù)據(jù)操作必須的操作,數(shù)據(jù)定位操作的效率會直接影響所有的數(shù)據(jù)操作的效率。
  因此我們開始思考,如何來減少磁盤的IO?
  5.減少磁盤IO
  減少數(shù)據(jù)占用的磁盤空間:壓縮算法、優(yōu)化數(shù)據(jù)存儲結(jié)構(gòu)
  減少訪問數(shù)據(jù)的總量:讀出或?qū)懭氲臄?shù)據(jù)中,有一部分是數(shù)據(jù)操作所必須的,這部分稱作有效數(shù)據(jù)。剩余的部分則不是數(shù)據(jù)操作必須的數(shù)據(jù),稱為無效數(shù)據(jù)。例如,查詢姓名是‘張三’的記錄。那么這條記錄是有效記錄,其他記錄則是無效記錄。我們要努力減少無效數(shù)據(jù)的訪問。

到此,關(guān)于“MySQ中索引的實現(xiàn)方式”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI