1
.不宜建立索引的情形(1
)經常插入,修改和刪除的表(2
)資料量比較小的表,因為查詢優化器在搜尋索引時所花費的時間可能會大於遍歷全表的資料所需要的時間
2.適合建立索引的情形(1
)為where子句中出現的列建立索引(2
)建立組合索引(3
)為group
by子句中出現的列建立索引
3.聚集索引的設計原則(1
)該列的數值是唯一的或者很少有重複的記錄(2
)經常使用between ...
and..按順序查詢的列(3
)定義identity的唯一列.(4
)經常用於對資料進行排序的列.
---無法使用索引的select語句
1.對索引列使用了函式,如:
select
*from
tb where
max(id)
=100
2.對索引列使用了
'%xx
',如:
select
*from
tb where
id like'%1
'需要注意的不是所有使用like關鍵字的select 語句都無法使用索引,比如
select
*from
tb where
id like'1%
'就可以使用索引
3.在where子句中對列進行型別轉換(其實也是使用到了函式)
4.在組合索引的第1列不是使用最多的列,如在下面3個查詢語句中建立組合索引,按順序包含col2,col1,id列;
select
*from
tb whereid=
'1'and
col1='
aa'select
id,sum
(col1)
from
tb group
byid
select
*from
tb whereid=
'2'and
col2='
bb'則第一句和第二句無法使用到索引 所以需要注意組合索引的順序
5.在where 子句中使用in關鍵字的某些句子
當在in關鍵字後面使用巢狀的select語句,將無法使用在該列上定義的索引
如:select
*from
ta where
id in
(select
id from
tb where
....)
--這樣可以用到索引
select
*from
tb where
id in('
1','
2')
資料庫 索引的使用
1.索引的含義和特點 1 索引是單獨的 儲存在磁碟上的資料結構 他們包含著對資料表裡所有記錄的引用指標。2 通過建立唯一索引,可以保證資料庫表中每一行資料的唯一性。3 可以大大的加快資料的查詢速度 4 加速表與表之間的聯絡 5 減少查詢中分組和排序的時間 6 建立索引的維護索引需要耗費時間 並且隨著...
資料庫索引的使用
多列索引1 多列索引2 mysql中的多列索引。1 聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當...
資料庫 索引的使用
在關聯式資料庫中,索引是一種單獨的 物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和相應的指向資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。索引的分類 普通索引 用表中普通的列構建的索引,沒有限制 alter ta...