MySql索引使用策略分析
MySql索引
索引優點
1.可以通過建立唯一索引或者主鍵索引,保證數據的唯一性.2.提高檢索的數據性能3.在表連接的連接條件 可以加速表與表直接的相連 4.建立索引,在查詢中使用索引 可以提高性能
索引缺點
1.在創建索引和維護索引 會耗費時間,隨著數據量的增加而增加2.索引文件會占用物理空間,除了數據表需要占用物理空間之外,每一個索引還會占用一定的物理空間3.當對表的數據進行 INSERT,UPDATE,DELETE 的時候,索引也要動態的維護,這樣就會降低數據的維護速度,
(建立索引會占用磁盤空間的索引文件。一般情況這個問題不太嚴重,但如果你在一個大表上創建了多種組合索引,索引文件的會膨脹很快)。
使用索引需要注意的地方
1.在經常需要搜索的列上,可以加快索引的速度2.主鍵列上可以確保列的唯一性3.在表與表的而連接條件上加上索引,可以加快連接查詢的速度4.在經常需要排序(order by),分組(group by)和的distinct 列上加索引 可以加快排序查詢的時間, (單獨order by 用不了索引,索引考慮加where 或加limit)5.在一些where 之后的 < <= > >= BETWEEN IN 以及某個情況下的like 建立字段的索引(B-TREE)
6.like語句的 如果你對nickname字段建立了一個索引.當查詢的時候的語句是 nickname lick ’%ABC%’ 那么這個索引講不會起到作用.而nickname lick ’ABC%’ 那么將可以用到索引
7.索引不會包含NULL列,如果列中包含NULL值都將不會被包含在索引中,復合索引中如果有一列含有NULL值那么這個組合索引都將失效,一般需要給默認值0或者 ’ ’字符串
8.使用短索引,如果你的一個字段是Char(32)或者int(32),在創建索引的時候指定前綴長度 比如前10個字符 (前提是多數值是唯一的..)那么短索引可以提高查詢速度,并且可以減少磁盤的空間,也可以減少I/0操作.
9.不要在列上進行運算,這樣會使得mysql索引失效,也會進行全表掃描
10.選擇越小的數據類型越好,因為通常越小的數據類型通常在磁盤,內存,cpu,緩存中 占用的空間很少,處理起來更快
什么情況下不創建索引
1.查詢中很少使用到的列 不應該創建索引,如果建立了索引然而還會降低mysql的性能和增大了空間需求.2.很少數據的列也不應該建立索引,比如 一個性別字段 0或者1,在查詢中,結果集的數據占了表中數據行的比例比較大,mysql需要掃描的行數很多,增加索引,并不能提高效率3.定義為text和image和bit數據類型的列不應該增加索引,4.當表的修改(UPDATE,INSERT,DELETE)操作遠遠大于檢索(SELECT)操作時不應該創建索引,這兩個操作是互斥的關系
以上就是MySql索引使用策略分析的詳細內容,更多關于MySQL 索引的資料請關注好吧啦網其它相關文章!
相關文章:
