這些有效的MySQL數據優化方法,你知道嗎?
數據庫的增刪改查的效率在開發中是十分重要的,好的數據庫優化方法可以讓你的數據庫效率更高,今天小編來總結一些優化數據庫的方法。
一:表優化
一般情況下表的數據越小,查詢的速度也就越快:
1.垂直拆分表:把一個表中特別長的字段拆分成多張表,然后在查詢時進行關聯查詢,這樣可以有效的提高查詢效率。
2.字段屬性設置:長度類型設置夠用就行,比如能設置成varchar(10)的就不要設置成varchar(100);對于某些只有固定幾個值可選的字段,例如“性別”等,可以將它們定義為tinyint或int類型,因為在MySQL中,數值型數據被處理起來的速度要比文本類型快。
二:sql語句優化方法
1.索引可以加快查詢速度但是有的操作卻能破壞索引,比如:!=,<>操作符等會使索引失效。
2.盡量不要在 where 子句中使用 or 來連接條件,這樣會破壞索引。
3.使用LIKE '%ABC'或LIKE '%ABC%'類型的查詢也會破壞索引使索引失效,可以嘗試使用全文搜索。
4.應盡量避免在 where 子句中對字段進行表達式操作或進行函數操作,這將導致引擎放棄使用索引而進行全表掃描
5.不要使用 select * from table ,用具體的字段列表代替“*”,不要返回用不到的任何字段。
6.避免頻繁創建和刪除臨時表,以減少系統表資源的消耗。
7.盡量避免向客戶端返回大數據量,若數據量過大,應該考慮相應需求是否合理。
8.盡量避免大事務操作,提高系統并發能力。
三:用UNION來代替臨時表
union查詢,它可以把需要使用臨時表的兩條或更多的select查詢合并的一個查詢中。客戶端的查詢結束時,臨時表會被自動刪除,從而保證數據庫整齊、高效。
四:事務
雖然大部分的查詢都可以使用:子查詢(Sub-Queries)、連接(JOIN)和聯合(UNION)來創建各種各樣的查詢,但不是所有的數據庫操作都可以只用一條或少數幾條SQL語句完成的。很多時候需要查詢多張表,這是如果其中一條語句查詢錯誤那么后面的執行對于需求來說將沒有任何意義,這是就造成了不必要的操作,這是可以使用事務進行回滾,不去執行下面的錯誤語句。