explain 函式檢視執行計畫,索引使用情況,詳情
看是否使用了大字段,為列選擇合適的資料型別,查詢結果不需要大字段,就不要查詢大字段
是否有迴圈查詢
比較運算子能用 「=」就不用「<>」,「=」增加了索引的使用機率。
明知只有一條查詢結果,那請使用 「limit 1」,「limit 1」可以避免全表掃瞄,找到對應結果就不會再繼續掃瞄了。
將大的delete,update or insert 查詢變成多個小查詢 。能寫乙個幾十行、幾百行的sql語句是不是顯得逼格很高?然而,為了達到更好的效能以及更好的資料控制,你可以將他們變成多個小查詢。但是不是太複雜的查詢還是用聯查,多次連線資料庫也會使介面變慢
為獲得相同結果集的多次執行,請保持sql語句前後一致。這樣做的目的是為了充分利用查詢緩衝。前後順序也不要變。
盡量避免使用 「select *」。
使用索引,where 子句裡面的列盡量被索引,join 子句裡面的列盡量被索引, order by 的列盡量被索引。都是盡量,視情況而定。 分組時 索引在前,有聯合索引時 順序應該和聯合索引的資料保持一致。
去哪 : 開發規範/
mysql 調優 Mysql調優
表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...
mysql調優小總結
1.回表 索引是非主鍵索引的時候,先根據該索引查詢到主鍵索引,主鍵索引再去查詢該主鍵對應的記錄,這種操作叫回表。2.覆蓋索引 只查詢索引值,不回表就是覆蓋索引。select b from table where b 上文如果查詢欄位b這個字段恰好是索引,那麼不需要去找主鍵索引,不需要回表就是索引覆蓋...
MySQL效能調優過程總結
1.show full processlist 可用於生產環境現場檢視哪些鎖存在。2show innodb status 用於檢視死鎖。3.slow log 使用者檢視慢查詢 4.show status 使用者調優my.cnf引數,具體詳見 修改引數示例 set global key buffer ...