求職複習系列6數據庫優化

在數據庫中,優化主要在查詢那個方面的,優化也主要查詢方面,

查詢方面如何優化,在我們學習mysql時,我們都知道一個叫主鍵的東西,在每個表都會添加一個主鍵,主鍵是唯一的,不能重複的,

查詢的時候推薦使用主鍵作為條件,在數據庫中主鍵頁數主鍵索引,

索引常用的有:普通索引,唯一索引,主鍵索引,組合索引

創建適當的索引可以提高查詢的效率.但是過多的索引也會影響添加,刪除修改的操作,應為索引的本質就是在按照字段的排序規則進行排序,按照排序規則排序,查找的時候使用二分法進行查找.如果過多的索引會導致每次添加 修改和刪除的時候進行重新排序

使用組合索引的時候,如果要查詢的字段不構成索引最左面的前綴,那麼就不會是用索引,

比如:

由id、name和age3個字段構成的索引,索引行中就按id/name/age的順序存放,索引可以索引下面字段組合(id,name,age)、(id,name)或者(id)。否則就不會使用組合索引進行查詢

查詢語句上的優化

避免使用!=或<>、IS NULL或IS NOT NULL、IN ,NOT IN等這樣的操作符. 

能夠用BETWEEN的就不要用IN
能夠用DISTINCT的就不用GROUP BY
使用group by分組查詢,完成後會先進行排序.會降低速度: 添加order by null
有些情況下連接查詢代替子查詢, join不會創建臨時表
儘量不要用SELECT INTO語句。SELECT INTO 語句會導致表鎖定,阻止其他用戶訪問該表。
必要時強制查詢優化器使用某個索引
儘量避免在索引過的字符數據中,使用非打頭字母搜索。這也使得引擎無法利用索引。

儘量使用數字型字段.


分享到:


相關文章: