1. 檢查表結構,考慮以下情況:
1)欄位的長度是否合適,選擇滿足要求的最小長度
2)對於使用了unique、外來鍵等約束條件的字段,能否在程式中保證其約束性。
3)在字段避免使用null ,很難查詢優化且占用索引空間。
4)對於查詢經常涉及到的字段是否建立的索引,對於長字串字段只見字首索引,值分布很少的字段不適合建立索引。
2. 檢查sql語句,考慮以下情況:
1)避免在where 中對字段進行null判斷,可能不會使用索引而進行全表掃瞄。
2)對於order by涉及到的字段,能否使用索引來進行排序,避免資料庫進行不必要的sort。
3)對於組合索引,注意查詢的順序與索引的順序保持一致。
4)對於like, 應避免以「%」 或「-」 開頭, 這樣不會使用索引。
5)不在「=」、「<"等符號的左邊進行列運算, 這樣不會使用索引。
6)獲取全表資料時,若資料量太大,可以使用limit 進行分頁。
3. 考慮是否需要 分表
好處:(1)行資料更小,乙個資料塊(block)中的可以存更多的行資料,減少了io次數
(2)維護更簡單
(3)可以最大程度的利用快取,將不常變的資料放在一張表中,常變得資料放在一張表中
缺點:(1)主鍵冗餘
(2)會引起join操作
(3)事務處理複雜
2)水平分割槽:表中的記錄數太大,可以資料分表,一般需要分庫(將資料分片(表)存在不同的資料庫中,以達到分布式的效果)
優點:不存在單庫大資料和高併發的效能瓶頸,提高系統穩定性和負載能力
缺點:跨節點的join效能差;事務管理複雜;難以維護
3)讀寫分離: 從庫讀,主庫寫。
mysql資料庫優化索引 mysql資料庫索引調優
一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...
mysql資料庫優先 MySQL資料庫優化
1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...
mysql資料庫優化
用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的 開始之前,介紹倆mysql的命令 show global status 檢視執行狀態的,顯示執行各種狀態值 show...