Mysql索引的缺點以及注意事項

2021-09-26 13:35:48 字數 926 閱讀 3529

雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,不僅要儲存資料,還要儲存一下索引檔案。

建立索引會占用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在乙個大表上建立了多種組合索引,索引檔案的會增長很快。

索引只是提高效率的乙個因素,如果有大資料量的表,就需要花時間研究建立最優秀的索引,或優化查詢語句。

索引不會包含有null值的列

只要列中包含有null值都將不會被包含在索引中,復合索引中只要有一列含有null值,那麼這一列對於此復合索引就是無效的。所以我們在資料庫設計時不要讓字段的預設值為null。

使用短索引

對串列進行索引,如果可能應該指定乙個字首長度。例如,如果有乙個char(255)的列,如果在前10個或20個字元內,多數值是惟一的,那麼就不要對整個列進行索引。短索引不僅可以提高查詢速度而且可以節省磁碟空間和i/o操作。

索引列排序

查詢只使用乙個索引,因此如果where子句中已經使用了索引的話,那麼order by中的列是不會使用索引的。因此資料庫預設排序可以符合要求的情況下不要使用排序操作;盡量不要包含多個列的排序,如果需要最好給這些列建立復合索引。

like語句操作

一般情況下不推薦使用like操作,如果非使用不可,如何使用也是乙個問題。like 「%aaa%」 不會使用索引而like 「aaa%」可以使用索引。

不要在列上進行運算

這將導致索引失效而進行全表掃瞄,例如

select * from table_name where year(column_name)<2017;

不使用not in和<>操作

mysql的索引型別以及優缺點

索引被用來快速找出在乙個列上用一特定值的行。沒有索引,mysql不得不首先以第一條記錄開始並然後讀完整個表直到它找出相關的行。資料表越大,花費時間越多。如果表對於查詢的列有乙個索引,mysql能快速到達乙個位置去搜尋到資料檔案的中間,沒有必要考慮所有資料。0 檢視索引 show index from...

MySQL 索引的優缺點以及建立索引的準則

一 為什麼要建立索引呢 優點 這是因為,建立索引可以大大程式設計客棧提高系統的效能。二 建立方向索引的不利因素 缺點 也許會有人要問 增加索引有如此多的優點,為什麼不對錶中的每乙個列建立乙個索引呢?這種想法固然有其合理性,然而也有其片面性。雖然,索引有許多優點,但是,為表中的每乙個列都增加索引,是非...

mysql索引型別和索引方法以及使用注意事項

一 索引型別 mysql索引型別normal,unique,full text的區別是什麼?normal 表示普通索引 unique 表示唯一的,不允許重複的索引,如果該欄位資訊保證不會重複例如身份證號用作索引時,可設定為unique full text 表示 全文搜尋的索引。fulltext 用於...