亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

MySQL索引背后的數據結構及算法原理

發布時間:2020-07-13 21:41:28 來源:網絡 閱讀:258 作者:哆悇溫渘 欄目:數據庫

本文以MySQL數據庫為研究對象,討論與數據庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同,因此MySQL數據庫支持多種索引類型,如BTree索引,哈希索引,全文索引等等。為了避免混亂,本文將只關注于BTree索引,因為這是平常使用MySQL時主要打交道的索引,至于哈希索引和全文索引本文暫不討論。

文章主要內容分為三個部分。

第一部分主要從數據結構及算法理論層面討論MySQL數據庫索引的數理基礎。

第二部分結合MySQL數據庫中MyISAM和InnoDB數據存儲引擎中索引的架構實現討論聚集索引、非聚集索引及覆蓋索引等話題。

第三部分根據上面的理論基礎,討論MySQL中高性能使用索引的策略。

數據結構及算法基礎

索引的本質

MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取數據的數據結構。提取句子主干,就可以得到索引的本質:索引是數據結構。

我們知道,數據庫查詢是數據庫的最主要功能之一。我們都希望查詢數據的速度能盡可能的快,因此數據庫系統的設計者會從查詢算法的角度進行優化。最基本的查詢算法當然是順序查找(linear search),這種復雜度為O(n)的算法在數據量很大時顯然是糟糕的,好在計算機科學的發展提供了很多更優秀的查找算法,例如二分查找(binary search)、二叉樹查找(binary tree search)等。如果稍微分析一下會發現,每種查找算法都只能應用于特定的數據結構之上,例如二分查找要求被檢索數據有序,而二叉樹查找只能應用于二叉查找樹上,但是數據本身的組織結構不可能完全滿足各種數據結構(例如,理論上不可能同時將兩列都按順序進行組織),所以,在數據之外,數據庫系統還維護著滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據,這樣就可以在這些數據結構上實現高級查找算法。這種數據結構,就是索引。

http://gyjkyy.51sole.com/

http://gyjk.b2b168.com/

http://www.wenbing.cn/gyjk


向AI問一下細節

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

AI

莫力| 平塘县| 敦化市| 黄骅市| 晋宁县| 七台河市| 巴林右旗| 格尔木市| 万年县| 齐齐哈尔市| 通榆县| 周至县| 长兴县| 鱼台县| 文化| 林西县| 延寿县| 武宁县| 罗田县| 枝江市| 泰和县| 卢氏县| 集安市| 澳门| 那坡县| 利川市| 镇江市| 秀山| 澄迈县| 德安县| 屏东县| 柘荣县| 清徐县| 榕江县| 襄垣县| 新安县| 凤翔县| 任丘市| 桦南县| 巢湖市| 三亚市|