涉淺水者得魚蝦,入深海著獲蛟龍。那麼就讓我們一天進步一點。
as we all know ,電腦上的資料是儲存在磁碟上的,但是資料未必是連續的,它由磁軌決定分布的具體位址。那麼我們今天就說說索引和基本的資料結構。
答:索引是排好序的資料結構。
基本的資料結構有哪些?
二叉樹b樹
b+樹紅黑樹
hash表
二叉樹特點:乙個節點,左邊的節點資料都比該節點小,右邊的節點資料都比該節點大。
未使用原因:1,當列資料是遞增資料時,結構會變成線形列表,查詢效率大大降低;2,樹的高度不可控,導致磁碟i o讀寫性 能降低;
b樹特點:1、葉節點深度相同,葉節點指標為空;2、索引元素不重複;3、節點中資料索引從左到右遞增排序;
未使用原因:1、mysql分配的page_size 大約是16kb,但是b樹的節點上還儲存著資料,這樣就導致每乙個頁存的資料變少,樹的高度增加,從而導致磁碟i o讀寫效能降低; 2、葉子節點沒有指標互聯,所以不利於範圍查詢;
b+樹特點:1、非葉子節點不儲存資料,只儲存冗餘索引(可以存更多索引);2、葉子節點包含所有字段;3、葉子節點用指標連線,提高區間訪問速度;(根部的所有索引可能已經提前載入到記憶體,所以查詢的效率大大提高)
使用原因:1、數的高度比較低;2、可以存更多的資料
紅黑樹特點:1、從根節點到任意乙個葉子節點的總路徑是相同的。2、自平衡功能。
未使用原因:樹的高度不可控,i/0 消耗嚴重。
hash表:1、通過陣列+鍊錶的形式對 key 進行hash 處理,然後找到指定的陣列,並放到鍊錶中。
未使用原因:適合定值查詢,不適合範圍查詢;另外有hash 衝突問題
引申資料庫引擎:
myisam-->本地產生3個檔案【非聚蔟索引】
innodb--->本地產生兩個檔案 【聚蔟索引】
mysql 沒有建立主鍵索引時,會從第1列查詢所有資料不想等的列,如果所有列都不滿足,mysql會建立偽列rowid。代表主鍵!!!
為什麼非主鍵索引結構葉子節點儲存主鍵值?
答:為了一致性 以及 節省空間。
資料結構入門
資料 data 是客觀事物的符號表示。在電腦科學中指的是所有能輸入到計算機中並被電腦程式處理的符號的總稱。資料元素 data element 是資料的基本單位,在程式中通常作為乙個整體來進行考慮和處理。乙個資料元素可由若干個資料項 data item 組成。資料項是資料的不可分割的最小單位。資料項是...
資料結構入門
需要明確的幾個問題 1.什麼是資料結構?資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。簡單的來說數 據結構就是關係,就是資料元素相互之間存在的一種或多種特定關係的集合。2.資料結構研究什麼?1 資料的儲存 2 資料的操作 3.學習資料結構有什麼作用...
資料結構入門
資料 是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。前提 助於理解 1.可以輸入到計算機中 2.能被電腦程式處理 舉例 整型資料,聲音,影象等 資料物件 性質相同的資料元素的集合,是資料的子集 這裡解釋一下性質相同 具有相同數量和型別的資料項 比如 ...