目錄
一、基本概念
1.查詢複雜度:查詢的次數
2.排序的目的就是為了高效的查詢
3.資料結構:樹結構 tree
二、索引
1.索引概念
2.b+數
3.索引其實就是一種資料結構,可以加快我們的查詢速率
4.使用索引的區間
測試複雜度,使用的是悲觀態度,複雜度用o(x)表示
常規的查詢:順序查詢;
安裝順序,查詢到結果為結束。
複雜度為o(n)
對於mysql任意一張表,常規使用的查詢方法也是順序查詢
查詢方法
複雜度o(x)
順序查詢
o(n)
二叉樹o(logn)
根內部結點:有子結點的結點
葉子結點:沒有子結點的結點
mysql為了優化查詢,提出了索引概念
當使用者建立索引的時候,mysql首先複製資料,完成乙個新的資料結構(btree平衡樹),mysql索引預設用的時候b+tree結構
平衡樹:左右兩樹的結點的高度相差不能超過1(0 -1 1)
(1)必須有根節點
根節點為空或者只有乙個記錄和有兩個子節點(二叉樹)
(2)每個節點當做key和指標相互分割,指標指向子節點
(3)d表示樹的寬度,除葉子結點之外,其他的每個節點有[d/2,d-1]條資料,而且key從做導遊,從小到大排列
(4)在乙個節點當做,第n個子樹所有的key,小於這個節點當做的第n個key,大於這個節點當做的第n-1個key
(5)所有的葉子結點必須在同一層次
(6)複雜度:二分查詢 o(logn)
建立索引需要複製資料,會占用資源
可以加快查詢,但是會把表變得很大
當我們使用索引後,查詢指定資料,返回的資料是總資料的3%~5%,我們認為是合適的
少量的資料不適合索引
sql語句優化五(索引的介紹)
一 索引的介紹 sql索引在資料庫優化中占有乙個非常大的比例,乙個好的索引的設計,可以讓你的效率提高幾十甚至幾百倍,在這裡將帶你一步步揭開他的神秘面紗。sql索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了sql server系統的效能,加快資料的查詢速度與減少系統的響應時間 下面舉兩個簡單的...
精妙sql語句介紹
說明 複製表 只複製結構,源表名 a 新錶名 b sql select into b from a where 1 1 說明 拷貝表 拷貝資料,源表名 a 目標表名 b sql insert into b a,b,c select d,e,f from b sql select a.title,a....
精妙SQL語句介紹
說明 複製表 只複製結構,源表名 a 新錶名 b sql select into b from a where 1 1 說明 拷貝表 拷貝資料,源表名 a 目標表名 b sql insert into b a,b,c select d,e,f from b sql select a.title,a....