SQL的索引使用注意事項

2022-03-16 12:57:29 字數 707 閱讀 2214

1、在sql中盡量少用<>和!=

下面的查詢即使在cust_rating列有乙個索引,查詢語句仍然執行一次全表掃瞄。

select

cust_id,cust_name

from

customers

where cust_rating <>'aa

';

把上面的語句改成如下的查詢語句,這樣,在採用基於規則的

優化器而不是基於代價的優化器(更智慧型)時,將會使用索引。

select

cust_id,cust_name

from

customers

where cust_rating <'aa

'or cust_rating >'aa

';

特別注意:通過把不等於操作符改成or條件,就可以使用索引,以避免全表掃瞄。

2、使用is null 或is not null時是否使用列索引

使用is null 或is not null同樣會限制索引的使用。因為null值並沒有被定義。在sql語句中使用null會有很多的麻煩。因此建議開發人員在建表時,把需要索引的列設成not null。如果被索引的列在某些行中存在null值,就不會使用這個索引(除非索引是乙個位圖索引,關於位圖索引在稍後在詳細討論)。

索引使用注意事項

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...

sql復合索引使用和注意事項

1 定義 單一索引 單一索引是指索引列為一列的情況,即新建索引的語句只實施在一列上 復合索引 復合索引也叫組合索引 使用者可以在多個列上建立索引,這種索引叫做復合索引 組合索引 復合索引在資料庫操作期間所需的開銷更小,可以代替多個單一索引 同時有兩個概念叫做窄索引和寬索引,窄索引是指索引列為1 2列...