一:索引的概念
索引:在對錶需要進行查詢或者排序操作時,可以對錶中某個或者某幾個字段新增索引,對
乙個字段新增索引就是單個索引,對多個字段新增索引時就是組合索引。
create index a_index on a(id,custname);
給表a的id、custname欄位建立組合索引,組合索引對查詢條件是單個字段或者兩個字段
都起作用,但是有些地方還是要注意:
select * from a where id > 1 and custname = 'tom'; -- 這種情況會走索引
select * from a where id > 1; -- 這種情況也會走索引,儘管只是使用了組合索引中乙個字段
但是下面的情況就不會走索引
select * from a where custname = 'tom'; --因為custname位於組合索引的第二個字段
二:建索引的不足
不能因為建索引可以提高查詢效率,就建立很多索引,建索引一方面要占用物理儲存空間,另一方面
在進行dml操作(插入、更新、刪除)時,會降低效率。
可以參考:
索引使用注意事項
1.索引不會包含有 null 值的列只要列中包含有 null 值都將不會被包含在索引中,復合索引中只要有一列含有 null 值,那麼這一列對於此復合索引就是無效的。所以我們在資料庫設計時不要讓字段的預設值為 null 應該用 0 乙個特殊的值或者乙個空串代替空值。2.復合索引 比如有一條語句是這樣的...
使用索引注意事項
新增dept 資料 create procedure insert dept in start int 10 in max num int 10 begin declare i int default 0 set autocommit 0 repeat set i i 1 insert into d...
mysql索引 使用注意事項
索引使用缺點 雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert,update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案 建立索引會占用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在要給大表上建了多種組合索引,索引檔案會膨脹很寬 ...