MySQL運行機制緩存
MySQL執行計劃併發
MySQL如何使用索引函數
1.最左前綴匹配原則,很是重要的原則 2.選擇區分度高的列做爲索引,即一個字段值的分佈要多,像狀態值這種只有幾個值的就不要建了 3.索引列不能參與計算 4.儘可能的擴展索引,不要新建索引
一、匹配全值 對索引中全部列都指定具體值,即對索引中的全部列都有等值匹配的條件 2.匹配值的範圍查詢 對索引的值可以進行範圍查找 3.匹配最左前綴 僅僅使用索引中的最左邊列進行查詢 4.僅對索引進行查詢
1.以%開頭的like查詢 2.數據類型出現隱式轉化,不會使用索引 3.組合索引,不知足最左原則,不使用聚合索引 4.用or分割條件,若or先後只要有一個列沒有索引,就都不會用索引 使用 union all代替提升效率 5.使用!= 或 <> 操做符時 6.索引部分等值匹配,部分範圍匹配
SQL使用的規範
1.禁止使用SELECT *,只獲取必要的字段,須要顯示說明列屬性優化
2.禁止使用INSERT INTO t_xxx VALUES(xxx),必須顯示指定插入的列屬性code
3.禁止使用屬性隱式轉換排序
4.禁止在WHERE條件的屬性上使用函數或者表達式索引
5.禁止負向查詢,以及%開頭的模糊查詢
負向查詢條件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,會致使全表掃描it
6.禁止大表使用JOIN查詢,禁止大表使用子查詢io
7.禁止使用OR條件,必須改成IN查詢,或者 union、union alltable
8.應用程序必須捕獲SQL異常,並有相應處理