資料庫索引優化

2021-09-01 21:30:01 字數 1703 閱讀 2338

建立索引字段(c_companyname--公司名稱,字段長度在10-16之間)

100萬條資料

完全索引:

資料 52,406.9 kb

索引 58,214.0 kb

總計 108.0 mb

10位索引:

資料 52,406.9 kb

索引 43,402.0 kb

總計 95,808.9 kb

08位索引:

資料 52,406.9 kb

索引 36,906.0 kb

總計 89,312.9 kb

10位索引對於8位索引的索引大小增長14.967%

(434020-369060)/434020=14.967%

完全索引對於10位索引的索引大小增長25.444%

(582140-434020)/582140=25.444%

完全索引對於8位索引的索引大小增長36.603%

(582140-369060)/582140=36.603%

以下是查詢時間(毫秒):

查詢命中的:

100條資料 第一次、二、三、四、、、、、、

400條資料

500條資料

---> 1151 1281 1220 1280 1260 1270

-----> 700 654 641 641 711 641

-------> 761 650 731 691 690 701

600條資料

---> 1371 1381 1422 1290 1412 1401

-----> 740 811 861 851 790 822

-------> 800 871 720 832 811 720

800條資料

---> 1662 1621 1772 1662 1631 1620

-----> 951 1141 1040 960 980 1050

-------> 1110 1001 881 1101 1092 1033

1000條資料

---> 1800 1931 1983 1831 1802 1893

-----> 1190 1271 1110 1252 1201 1340

-------> 1414 1212 1261 1331 1331 1241

命中查詢使用的資料是連續的一片資料,並沒有使用零碎分散的資料。這樣只會影響第一次查詢,使用零碎資料首次查詢的時間會遠大於使用連續資料首次查詢的時間。不過接下來的查詢就差不多。

零碎查詢

100條資料

6324 733 729 732 744

7616 149 148 174 153

6369 144 134 146 147

500 條資料

19509 1279 1267 1248 1242 1248

18462 673 671 665 651 691

20771 684 679 672 678 664

查詢不命中的資料:

資料對於查詢命中速度:8位索引和10位索引查詢速度相差不大。差不多一樣,而相比於完全索引的查詢速度,大概增長了40%左右。

對於查詢不命中速度:初次查詢都差不多,而接下來的查詢,10位索引和8位索引的查詢速度明顯快於完全索引的查詢速度。

從資料上看,對於資料庫建立索引,只要該字段的前多少位能滿足我們的查詢需求,這樣適當的控制建立索引欄位的位數能提高查詢速度,同時也能減少索引檔案的大小。

資料庫索引 索引優化

二 三星索引 三 合適設計理想索引 謂詞簡單謂詞和複雜謂詞 where字句中的每個條件稱為乙個謂詞。過濾因子 描述了謂詞的選擇性,即表中滿足謂詞條件的記錄行數所佔的比例 過濾因子 ff 結果集的數量 錶行的數量 平均過濾因子 1 不同列值的數量 索引片及匹配列 乙個索引定義乙個索引片,如果where...

資料庫優化 索引

鑑於csdn無故刪除博文,本部落格不再更新,暫時遷至 2索引每一本書的前幾頁一般都是目錄,而最後幾頁通常會有乙個關鍵字索引。對於資料庫來講系統表 如 sysobjects等 就是目錄,而標字段上的索引就如同書本後面的關鍵字索引。資料庫中,目錄 資料字典 和索引的區別 目錄縱向 索引橫向。優化器根據統...

資料庫索引優化

索引的作用是告訴儲存引擎快速找到我們需要的資料,兩個極端,除了主鍵沒有任何索引,給每乙個列都建立乙個索引,所以索引是在mysql儲存引擎層實現的,而不是在mysql伺服器層實現的,不同的儲存引擎的索引方式是不同的,mysql支援的索引型別,b tree索引是比較常見的,通常所說的索引就是b tree...