索引的優化

2022-08-05 14:27:14 字數 1014 閱讀 2282

發現一個sql執行很慢,如下:

select

*from

rmes.r_wip_tracking_t wt, cmes.c_material_t m

where

m.material_type =1

and(m.material_spec 

like'l%

'orm.material_spec 

like'c%

')andwt.model_id 

=m.material_id      

andwt.sn 

>=

'1073h2h72270002

'andwt.sn 

<=

'1073h2h72270002

'計劃分析後,發現是都有走索引。

統計兩個表如下:

1.r_wip_tracking_t: 總共有3580030記錄,其中用sn有索引,並且sn在表中唯一

2.c_material_t 總共有512條資料,material_type是外來鍵有normal索引,material_spec無索引

有一點發現,如果去掉material_type=1的sql會變很快,說明是material_type的問題

在512記錄中發現

material_type

count

0 196

1 276

2 8

3 10

4 8

5 13

7 1

說明material_type索引型別錯了,需要改成bitmap型

執行:drop index fk_type;

create bitmap index fk_type on c_material_t (material_type) tablespace cmes;

就把sql的執行時間從89秒降低到了0.15秒

MySQL 索引中的b樹索引

1 索引如果沒有特別指明型別 一般是說b樹索引 b樹索引使用b樹資料結構儲存資料 實際上很多儲存引擎使用的是b 樹 每一個葉子節點都包含指向...

MySQL的索引

建立一個單列索引 create index index name on table name target index name是你索引的名稱 table name是你表的名稱,target是建立的依據 就是你的列名稱,如果是char,varchar型別,length可以小於欄位實際長度 如果是bl...

索引的概述?

1 索引的概念 索引就是為了提高資料的檢索速度。 資料庫的索引類似於書籍的索引。 在書籍中,索引允許使用者不必翻閱完整個書就能迅速地找到所需要的資訊。 在資料庫中,索引也允許資料庫程式迅速地找到表中的資料, 而不必掃描整個資料庫 2 索引的優點 1 建立唯一性索引,保證資料庫表中每一行資料的唯一性 2...