資料庫索引設定及命中

2021-10-10 20:41:58 字數 2395 閱讀 5474

資料準備:假設我們有如下圖所示的資料庫表study_goods_size,並且我們設定goods_id和size_id為聯合索引,即:idx_goods_size。

create table `study_goods_size` (

`id` bigint(20) unsigned not null auto_increment comment '主鍵',

`goods_id` varchar(50) not null default '' comment '商品id',

`goods_name` varchar(50) not null default '' comment '商品名稱',

`size_id` varchar(100) not null default '' comment '尺碼id',

`size_name` varchar(100) not null default '' comment '尺碼名稱',

聯合索引命中總結 場景

sql是否命中索引

其他場景1

explain select * from study_goods_size where goods_id = 123 and size_id = 234;   

no場景2

explain select * from study_goods_size where goods_id = '123' and size_id = 234;

yes場景3

explain select * from study_goods_size  where goods_id = 123 and size_id = '234';

no場景4

explain select * from study_goods_size  where goods_id = '123' and size_id = '234';

yes場景5

explain select * from study_goods_size  where size_id = '234' and goods_id = '123' ;

yes場景6

explain select * from study_goods_size  where goods_id = '123';

yes場景7

explain select * from study_goods_size  where goods_id = 123;

no場景8

explain select size_id from study_goods_size  where goods_id = 123;

yes場景9

explain select size_id from study_goods_size  where goods_id = '123';

yes場景10

explain select size_id from study_goods_size;

yes

結果:不能命中索引,實測情況如下圖所示:

【參考資料】

索引型別參考:

如何檢測mysql是否命中索引:

資料庫索引及優化

資料庫索引 一 索引的概念 索引是一種排好序的快速查詢的資料結構。索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。我們平常所說的索引,如果沒有特別指明,都是指b樹 多路搜尋樹,並不一定是二叉的 結構組織的索引。其中聚集索引 次要索引 覆蓋索引 復合索引 字首索引 ...

資料庫索引及結構

索引是一種特殊的檔案,它包含著對資料表中所有記錄裡的引用指標 索引是一種資料結構。資料庫索引,是資料庫管理系統中乙個排序的資料結構,以協助快速查詢 更新資料庫表中資料。更通俗的來講,索引就相當於目錄。索引的優點 索引的缺點 可以通過alter table table name add unique ...

資料庫的索引及實現

資料庫索引好比是一本書前面的目錄,能加快資料庫的查詢速度。索引是對資料庫表中乙個或多個列 例如,employee 表的姓氏 lname 列 的值進行排序的結構。如果想按特定職員的姓來查詢他或她,則與在表中搜尋所有的行相比,索引有助於更快地獲取資訊。優點 1.大大加快資料的檢索速度 2.建立唯一性索引...