程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 十六、mysql 分區之 簡單sql優化1,mysql分區sql優化

十六、mysql 分區之 簡單sql優化1,mysql分區sql優化

編輯:MySQL綜合教程

十六、mysql 分區之 簡單sql優化1,mysql分區sql優化


1.使用 show session status like '%Com_%'; 可以查看當前連接的各個sql的執行頻率
       show global status like '%Com_%'; 可以查看從上次mysql服務器啟動到目前為止sql的執行頻率

2.explain select * from tmp;
    mysql> explain select * from zi_emp where tid = 1000\G
    *************************** 1. row ***************************
               id: 1
      select_type: SIMPLE
            table: zi_emp
             type: ALL
    possible_keys: NULL
              key: NULL
          key_len: NULL
              ref: NULL
             rows: 2
            Extra: Using where
    1 row in set (0.00 sec)
    
    PS::type類型中,ALL為效率最差,因為這樣意味著進行全表掃描
        index類型為索引全掃描
        range為索引范圍掃描
        ref為非唯一索引或唯一索引的前綴掃描
        eq_ref唯一索引掃描
        const/system 單表中只有一個匹配的行,比如用戶表
        NULL  沒有訪問到表或索引 比如:select 1=1;

3.哈哈,發現一個很好的東西
    explain extended select * from zi_emp; 查看執行sql語句前,mysql優化器做了點什麼
    show warnings;
    mysql> show warnings\G
    *************************** 1. row ***************************
      Level: Note
       Code: 1003
    Message: select `bin`.`zi_emp`.`tid` AS `tid`,`bin`.`zi_emp`.`tname` AS `tname` from `bin`.`zi_emp`
    1 row in set (0.00 sec)
    
    PS::沒錯,你看的就是一條完整的sql語句,也就是說這可能是msyql給定的最好的sql語句了,可以學習並復用

4.explain partitions select * from zi_emp where xxxxx 可以查看當前記錄的分區所在位置

 


怎優化mysql的查詢速度 我有一張表 article 裡面出著約4萬條記錄,sql查詢很慢,不知該怎優化?

這條SQL語句很簡單,就一個條件單純從語句上已經無法優化了,但可以使用其它的方法
比如,你的 guid 是一個固定長度的字符串嗎?如果是的話,可以使用 char 類型,另外,如果 guid 字段不是主鍵的話,並且經常被檢索的話,可以為該字段創建索引,有了索引以後,相信查詢速度至少可以提高10倍以上
 

幫忙優化mysql 的sql語句

你是要sql性能調優還是想縮短sql長度啊 這句sql又不是復雜sql 就是幾個嵌套 你用執行計劃跑一下 看性能消耗在哪段上 再針對那段優化

你sql裡面最耗費性能的我估計就是distinct 我看你這裡完全沒有必要做這個 直接去掉就可以了
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved