SQL性能優化概要

 

基本概要html

1.查詢的模糊匹配時,避免使用Like '%開頭',使得索引失效shell

2.索引問題緩存

    ◆ 避免對索引字段進行運算操做和使用函數性能優化

    ◆ 避免在索引字段上使用not,<>,!=併發

    ◆ 避免在索引列上使用IS NULL和IS NOT NULL函數

    ◆ 避免在索引列上出現數據類型轉換性能

    ◆ 避免創建索引的列中使用空值 索引須要慎重考慮優化

    ◆ 建索引須要慎重考慮,最好不要超過6個,已經建好的在這基礎上建.net

3.複雜操做:嵌套多級子查詢,拆分紅幾步,能夠生成一些臨時數據表,再進行關聯操做htm

4.Update:同一張表的修改避免屢次,而且不要Update所有字段

5.在能夠使用UNION ALL的語句裏,使用了UNION

6.對Where 語句的法則:

    (1)避免在WHERE子句中使用in,not in,or 或者having,能夠使用 exist 和not exist代替

    (2) 不要以字符格式聲明數字,會使得索引無效;

7.對Select語句的法則,避免使用*

8.排序:避免使用耗費資源的操做,帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啓動SQL引擎 執行,耗費資源的排序(SORT)功能. DISTINCT須要一次排序操做, 而其餘的至少須要執行兩次排序

————

9.先 truncate後 drop

10.儘可能避免大事務操做,提升系統併發能力

————

11.訪問頻繁而且不太會改變的數據設置緩存

12.EXPLAIN 你的 SELECT 查詢

13.LIMIT限制須要的行數

14.Where子句字段設置索引

15.選擇正確的存儲引擎

 

參考歸納:

SQL性能優化十條經驗:http://database.51cto.com/art/200904/118526.htm

MYSQL性能優化的最佳20+條經驗:https://coolshell.cn/articles/1846.html

SQL優化大總結之 百萬級方案:http://www.javashuo.com/article/p-fxaxlhna-y.html

相關文章
相關標籤/搜索