這篇文章主要介紹“MySQ中索引的實現(xiàn)方式”,在日常操作中,相信很多人在MySQ中索引的實現(xiàn)方式問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQ中索引的實現(xiàn)方式”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
“專業(yè)、務(wù)實、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 創(chuàng)新互聯(lián)建站是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于做網(wǎng)站、網(wǎng)站建設(shè)、軟件開發(fā)、設(shè)計服務(wù)業(yè)務(wù)。我們始終堅持以客戶需求為導(dǎo)向,結(jié)合用戶體驗與視覺傳達(dá),提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!
首先,需要對相關(guān)背景知識進(jì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性能非常低,嚴(yán)重的影響數(shù)據(jù)庫系統(tǒng)的性能。
② 磁盤順序讀寫比隨機讀寫的性能高很多。
4.數(shù)據(jù)的基本存儲結(jié)構(gòu)
①磁盤空間被劃分為許多大小相同的塊(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ù)
②讀出數(shù)據(jù)所在的塊,修改數(shù)據(jù)
③寫回磁盤
3.INSERT
①定位數(shù)據(jù)要插入的頁(如果數(shù)據(jù)需要排序)
②讀出要插入的數(shù)據(jù)頁,插入數(shù)據(jù).
③ 寫回磁盤
如何定位數(shù)據(jù)?
4.表掃描(Table Scan)
從磁盤中依次讀出所有的數(shù)據(jù)塊,一行一行的進(jìn)行數(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)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文名稱:MySQ中索引的實現(xiàn)方式
文章來源:http://weahome.cn/article/ieijid.html