Mysql常用的最佳化技巧

來源:互聯網
上載者:User

標籤:

1.通過show status 命令瞭解各種sql的執行效率

2. 定位執行效率較低的SQL語句

  開啟慢查詢記錄:

  開啟Mysql設定檔my.ini ,找到 [mysqld] 在其下面添加

  long_query_time = 2 // 慢查詢時間

  log_slow_queries = E:/mysql/logs/log.log #設定把日誌寫在那裡,可以為空白,系統會給一個預設的檔案

3.通過explain分析低效率的SQL語句的執行情況

  使用explain分析該dql語句:

  EXPLAIN SELECT * FROM order_copy WHERE id=12345
  會產生如下資訊:
  select_type:表示查詢的類型。
  table:輸出結果集的表
  type:表示表的連線類型(system和const為佳)
  possible_keys:表示查詢時,可能使用的索引
  key:表示實際使用的索引
  key_len:索引欄位的長度
  rows:掃描的行數
  Extra:執行情況的描述和說明

  注意:要盡量避免讓type的結果為all,extra的結果為:using filesort

4.適當的位置加上索引【注意以下幾種情況】

  • 較頻繁的作為查詢條件欄位應該建立索引

    select * from order_copy where id = $id

  • 唯一性太差的欄位不適合單獨建立索引,即使頻繁作為查詢條件

   select * from order_copy where sex=’女’

  • 更新非常頻繁的欄位不適合建立索引

    select * from order_copy where order_state=’未付款’

  • 不會出現在WHERE子句中欄位不該建立索引

5.如何建索引

請參考http://www.cnblogs.com/itsharehome/p/4955162.html

Mysql常用的最佳化技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.