我們在寫數據庫查詢語句的時候,經常會忽略一些查詢性能問題,導致最后在查詢數據的情況下非常耗時,影響項目質量。
數據庫的設計是一門藝術,需要遵循一定的規范。
對數據量很大的表一定要建立合適的索引,無論是單個索引還是復合索引,要根據查詢的業務邏輯去建立,同時也記住,單個表的索引數量不得超過5個,不然會很導致影響寫入的性能。
建立了合適的索引折后,我們要會正確的運用,這是關鍵,盡量避免全表掃描搜索這樣的情況,不然索引就是雞肋了。
1、查詢條件中帶有 “where 字段 is null” 會導致全表掃描,不會使用字段索引
2、不等於操作符(!=或者<>)會限制索引,引起全表掃描,即使比較的字段上有索引
3、對於like ‘%...%’(全模糊)這樣的條件,是無法使用索引的,但是變成like ‘…%’,是會使用索引的
4、復合索引的使用一定要根據建立的順序去設置條件,復合索引的結構與電話簿類似,人名由姓和名構成,電話簿首先按姓氏對進行排序,然后按名字對有相同姓氏的人進行排序。如果您知道姓,電話簿將非常有用;如果您知道姓和名,電話簿則更為有用,但如果您只知道名不姓,電話簿將沒有用處
5、盡量避免在where子句中對字段進行函數操作,這將導致引擎放棄使用索引而進行全表掃描