亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

深入講解數據庫性能調優技術中的索引調優

2024-07-21 02:41:50
字體:
來源:轉載
供稿:網友

一、概述

隨著數據庫在各個領域的使用不斷增長,越來越多的應用提出了高性能的要求。數據庫性能調優是知識密集型的學科,需要綜合考慮各種復雜的因素:數據庫緩沖區的大小、索引的創建、語句改寫等等??傊?,數據庫性能調優的目的在于使系統運行得更快。

調優需要有廣泛的知識,這使得它既簡單又復雜。

說調優簡單,是因為調優者不必糾纏于復雜的公式和規則。許多學術界和業界的研究者都在嘗試將調優和查詢處理建立在數學基礎之上。

稱調優復雜,是因為如果要完全理解常識所依賴的原理,還需要對應用、數據庫管理系統、操作系統以及硬件有廣泛而深刻的理解。

數據庫調優技術可以在不同的數據庫系統中使用。如果需要調優數據庫系統,最好掌握如下知識:1)查詢處理、并發控制以及數據庫恢復的知識;2)一些調優的基本原則。

這里主要描述索引調優。


二、索引調優

索引是建立在表上的一種數據組織,它能提高訪問表中一條或多條記錄的特定查詢效率。因此,適當的索引調優是很重要的。

對于索引調優存在如下的幾個誤區:

誤區1:索引創建得越多越好?

實際上:創建的索引可能建立后從來未使用。索引的創建也是需要代價的,對于刪除、某些更新、插入操作,對于每個索引都要進行相應的刪除、更新、插入操作。從而導致刪除、某些更新、插入操作的效率變低。

誤區2:對于一個單表的查詢,可以索引1進行過濾再使用索引2進行過濾?

實際上:假設查詢語句如下select * from t1 where c1=1 and c2=2,c1列和c2列上分別建有索引ic1、ic2。先使用ic1(或ic2)進行過濾,產生的結果集是臨時數據,不再具有索引,所以不可使用ic2(或ic1)進行再次過濾。


索引優化的基本原則:

1.將索引和數據存放到不同的文件組

沒有將表數據和索引數據存儲到不同的文件組,而不加區別地將它們存儲到同一文件組。這樣,不但會造成I/O競爭,也為數據庫的維護工作帶來不變。


2.組合索引的使用

假設存在組合索引it1c1c2(c1,c2),查詢語句select * from t1 where c1=1 and c2=2能夠使用該索引。查詢語句select * from t1 where c1=1也能夠使用該索引。但是,查詢語句select * from t1 where c2=2不能夠使用該索引,因為沒有組合索引的引導列,即,要想使用c2列進行查找,必需出現c1等于某值。

根據where條件的不同,歸納如下:

1)c1=1 and c2=2:使用索引it1c1c2進行等值查找。

2) c1=1 and c2>2:使用索引it1c1c2進行范圍查找,可以有兩種方法。

方法1,使用通過索引鍵(1,2)在B樹中命中一條記錄,然后向后掃描找出 第一條符合條件的記錄,從此記錄往后的每一條記錄都是符合條件的。這種方法的弊端在于:如果c1=1 and c2=2對應的記錄數很多,會產生很多無效的掃描。

方法2,如果c2對應的int型數據,可以使用索引鍵(1,3)在B樹中命中一條記錄,從此記錄往后的每一條記錄都是符合條件的。

本文中的例子均采用方法1。

3)c1>1 and c2=2:因為索引的第一個列不是等于號的,索引即使后面出現了c2=2,也不能將c2=2應用于索引查找。這里,通過索引鍵(1,- ∞)在B樹中命中一條記錄,向后掃描找出第一條符合c1>1的記錄,此后的每一條記錄判斷是否符合c2=2,如果符合則輸出,否則過濾掉。這里我們稱c2=2沒有參與到索引運算中去。這種情況在實際應用中經常出現。

4)c1>1:通過索引鍵(1,- ∞) 在B樹中命中一條記錄,以此向后掃描找出第一條符合c1>1的記錄,此后的每條記錄都是符合條件的。


3.唯一索引與非唯一索引的差異

假設索引int1c1(c1)是唯一索引,對于查詢語句select c1 from t1 where c1=1,達夢數據庫使用索引鍵(1)命中B樹中一條記錄,命中之后直接返回該記錄(因為是唯一索引,所以最多只能有一條c1=1的記錄)。

假設索引it1c2(c2)是非唯一索引,對于查詢語句select c2 from t2 where c2=2,達夢數據庫使用索引鍵(2)命中B樹中一條記錄,返回該記錄,并繼續向后掃描,如果該記錄是滿足c=2,返回該記錄,繼續掃描,直到遇到第一條不符合條件c2=2的記錄。

于是,我們可以得知,對于不存在重復值的列,創建唯一索引優于創建非唯一索引。


4.非聚集索引的作用

每張表只可能一個聚集索引,聚集索引用來組織真實數據。語句“create table employee (id int cluster PRimary key,name varchar(20),addr varchar(20))”。表employee的數據用id來組織。如果要查找id=1000的員工記錄,只要用索引鍵(1000)命中該聚集索引。但是,對于要查找name=’張三’的員工記錄就不能使用該索引了,需要進行全表掃描,對于每一條記錄判斷是否滿足name=’張三’,這樣會導致查詢效率非常低。

要使用聚集索引,必需提供id,我們只能提供name,于是需要引入一個輔助結構實現name到id的轉換,這就是非聚集索引的作用。該非聚集索引的鍵是name,值是id。于是語句“select * from employee where name=’張三’”的執行流程是:通過鍵(’張三’)命中非聚集索引,得到對應的id值3(假設’張三’對應的id為3),然后用鍵(3)命中聚集索引,得到相應的記錄。


5.是不是使用非聚集索引的查詢都需要進行聚集的查詢?

不是的,雖然在上一點中查詢轉換為聚集索引的查找,有時候可以只需要使用非聚集索引。

創建表并創建相應的索引:create table t1(c1 int,c2 int,c3 int);create index it1c2c3 on t1(c2,c3)。查詢語句為:select c3 from t1 where c2=1。

因為索引it1c2c3(c2,c3)覆蓋查詢語句中的列(c2,c3)。所以,該查詢語句的執行流程為:通過索引鍵(1,- ∞)命中索引it1c2c3,對于該記錄直接返回c3對應的值,繼續向后掃描,如果索引記錄中c1還是等于1,那么輸出c3,以此類推,直到出現第一條c1不等于1的索引記錄,結束查詢。


6.創建索引的規則

創建索引首先要考慮的是列的可選擇性。比較一下列中唯一鍵的數量和表中記錄的行數,就可以判斷該列的可選擇性。如果該列的“唯一鍵的數量/表中記錄行數”的比值越接近于1,則該列的可選擇行越高。在可選擇性高的列上進行查詢,返回的數據就較少,比較適合索引查詢。相反,比如性別列上只有兩個值,可選擇行就很小,不適合索引查詢。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人+综合亚洲+天堂| 国a精品视频大全| 91精品国产91久久久久福利| 51精品国产黑色丝袜高跟鞋| 麻豆精品精华液| 亚洲一区二区免费在线| 亚洲影院色无极综合| 一本色道久久88亚洲综合88| 亚洲福利视频网站| 欧美日韩国产999| 欧美黑人一级爽快片淫片高清| 日本免费一区二区三区视频观看| 国产一区二区三区久久精品| 国产亚洲欧美一区| 久久久女人电视剧免费播放下载| 亚洲一区二区在线播放| 精品成人69xx.xyz| 高清一区二区三区四区五区| 亚洲精品欧美一区二区三区| 97免费中文视频在线观看| 久99九色视频在线观看| 欧美精品免费在线| 日韩的一区二区| 国产亚洲欧美一区| 国产精品h片在线播放| 国内精品美女av在线播放| 亚洲国产高清高潮精品美女| 2020国产精品视频| 日韩动漫免费观看电视剧高清| 欧美在线xxx| 欧美日韩午夜视频在线观看| 欧美最顶级丰满的aⅴ艳星| 97在线视频免费播放| 中日韩美女免费视频网站在线观看| 韩国精品美女www爽爽爽视频| 国产精品国产三级国产aⅴ9色| 国产一区二区三区在线免费观看| 亚洲最大成人免费视频| 91人人爽人人爽人人精88v| 久热精品在线视频| 欧美成人免费在线视频| 精品女厕一区二区三区| 国产精品美女呻吟| 91av免费观看91av精品在线| 精品国产户外野外| 伊人伊成久久人综合网站| 久久九九国产精品怡红院| 久久伊人精品一区二区三区| 精品视频在线播放色网色视频| 国产精品视频一| 国产九九精品视频| 俺去了亚洲欧美日韩| 国产精品aaa| 亚洲福利视频久久| 日韩天堂在线视频| 九九热最新视频//这里只有精品| 久久亚洲电影天堂| 亚洲欧美成人在线| 久久久久久久久网站| 亚洲色无码播放| 久久久久久久激情视频| 成人写真福利网| 中文字幕在线观看日韩| 国产精品一香蕉国产线看观看| 日韩暖暖在线视频| 久久亚洲国产精品成人av秋霞| 日韩免费中文字幕| 成人性教育视频在线观看| 国产人妖伪娘一区91| 国产精品福利观看| 欧美精品免费播放| 精品久久久久久亚洲国产300| 亚洲人成亚洲人成在线观看| 亚洲男女性事视频| 欧美激情亚洲视频| 不卡伊人av在线播放| 色老头一区二区三区在线观看| 亚洲男人天堂古典| 国产精品观看在线亚洲人成网| 久久99久久亚洲国产| 国产日本欧美一区二区三区| 91青草视频久久| 97久久久免费福利网址| 日韩av在线免播放器| 久久久女女女女999久久| 国产大片精品免费永久看nba| 91香蕉嫩草神马影院在线观看| 日本一区二区三区在线播放| 亚洲精品电影网在线观看| 91大神福利视频在线| 国产一区视频在线| 亚洲a级在线播放观看| 久久国产精品免费视频| 亚洲精品理论电影| 欧美大全免费观看电视剧大泉洋| 精品国产一区二区三区久久久狼| 91精品视频在线| 欧美电影免费观看| 影音先锋欧美精品| 高清欧美电影在线| 亚洲免费伊人电影在线观看av| 精品久久久久人成| 91精品久久久久久久久久久久久久| 国产成人精品视| 九九热在线精品视频| 国产91对白在线播放| 日韩av网站导航| 日韩视频免费观看| 国产精品69久久久久| 国产欧美日韩亚洲精品| 欧美乱妇高清无乱码| 国产亚洲精品久久久久久| 成人激情春色网| 欧洲亚洲妇女av| 亚洲区在线播放| 国产精品久久久久久久午夜| 国产精品视频在线播放| 91久久精品日日躁夜夜躁国产| 国产91色在线|| 国产精品入口免费视| 久久精品国产v日韩v亚洲| 在线播放日韩专区| 日韩av电影手机在线观看| 亚洲性日韩精品一区二区| 久久99热这里只有精品国产| 色偷偷av一区二区三区| 国产精品观看在线亚洲人成网| 亚洲电影免费观看高清| 91精品视频免费| 亚洲va欧美va国产综合久久| 国产在线日韩在线| 国产99久久精品一区二区永久免费| 欧美精品性视频| 亚洲综合精品一区二区| 91亚洲精品在线观看| 国产精品久久久久久久久免费| 国产97免费视| 国产午夜精品一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲国产成人精品女人久久久| 日韩欧美在线视频日韩欧美在线视频| 狠狠色噜噜狠狠狠狠97| 国产91ⅴ在线精品免费观看| 亚洲精品欧美极品| 欧美日韩性视频在线| 国产精品精品视频| 国产欧美日韩亚洲精品| 国产美女搞久久| 久久综合88中文色鬼| 欧美夫妻性视频| 欧美有码在线观看| 91探花福利精品国产自产在线| 久久久精品美女| 国产亚洲视频在线观看| 久久久久女教师免费一区| 日韩精品视频免费| 亚洲欧洲第一视频| 欧美电影院免费观看| 日韩av在线免费| 一区二区三区视频在线| 欧美性受xxxx白人性爽| 欧美成人精品在线视频| 精品久久久视频| 超碰91人人草人人干|