婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mysql開啟慢查詢(EXPLAIN SQL語句使用介紹)

mysql開啟慢查詢(EXPLAIN SQL語句使用介紹)

熱門標簽:中科嘉智人工智能電銷機器人 上海智能外呼系統需要多少錢 甘孜電話機器人廠家 銀川電銷外呼系統定制 電銷機器人好品牌門薩維l 做地圖標注都需要什么工具 哈爾濱crm外呼系統價格 西安400電話在哪里辦理 凱立德科技館地圖標注

今天,數據庫的操作越來越成為整個應用的性能瓶頸了,這點對于Web應用尤其明顯。關于數據庫的性能,這并不只是DBA才需要擔心的事,而這更是我們程序員需要去關注的事情。當我們去設計數據庫表結構,對操作數據庫時(尤其是查表時的SQL語句),我們都需要注意數據操作的性能。

1、開啟慢查詢

1> 查看慢查詢是否開啟

show variables like "%quer%";
slow_query_log = ON #已開啟

2> 開啟方法:my.cnf目錄配置

slow_query_log=on #是否開啟
slow_query_log_file=/opt/MySQL_Data/TEST1-slow.log #慢查詢文件位置
long_query_time=2 #查詢超過多少秒才記錄

2、EXPLAIN慢查詢日志里出現的SELECT查詢

id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE user NULL ref user user 768 const 1 100.00 NULL

explain列的解釋

  • table:顯示這一行的數據是關于哪張表的

  • type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、index、all

  • possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引??梢詾橄嚓P的域從where語句中選擇一個合適的語句

  • key: 實際使用的索引。如果為null,則沒有使用索引。很少的情況下,mysql會選擇優化不足的索引。這種情況下,可以在select語句中使用use index(indexname)來強制使用一個索引或者用ignore index(indexname)來強制mysql忽略索引

  • key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好

  • ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數

  • rows:mysql認為必須檢查的用來返回請求數據的行數

  • extra:關于mysql如何解析查詢的額外信息。例子:using temporary和using filesort,意思mysql根本不能使用索引,結果是檢索會很慢

key_len的計算

  1. 所有的索引字段,如果沒有設置not null,則需要加一個字節。

  2. 定長字段,int占四個字節、date占三個字節、char(n)占n個字符。

  3. 對于變成字段varchar(n),則有n個字符+兩個字節。

  4. 不同的字符集,一個字符占用的字節數不同。latin1編碼的,一個字符占用一個字節,gbk編碼的,一個字符占用兩個字節,utf8編碼的,一個字符占用三個字節。

3、建索引的幾大原則

  • 最左前綴匹配原則,非常重要的原則,mysql會一直向右匹配直到遇到范圍查詢(>、、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調整。

  • =和in可以亂序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式。

  • 盡量選擇區分度高的列作為索引,區分度的公式是count(distinct column)/count(*),表示字段不重復的比例,比例越大我們掃描的記錄數越少,唯一鍵的區分度是1,而一些狀態、性別字段可能在大數據面前區分度就是0,那可能有人會問,這個比例有什么經驗值嗎?使用場景不同,這個值也很難確定,一般需要join的字段我們都要求是0.1以上,即平均1條掃描10條記錄。

  • 索引列不能參與計算和函數的使用,保持列干凈。

  • 盡量的擴展索引,不要新建索引。比如表中已經有a的索引,現在要加(a,b)的索引,那么只需要修改原來的索引即可。

您可能感興趣的文章:
  • MySQL性能分析及explain的使用說明
  • mysql之explain使用詳解(分析索引)
  • MySql中如何使用 explain 查詢 SQL 的執行計劃
  • mysql explain的用法(使用explain優化查詢語句)
  • mysql優化利器之explain使用介紹
  • MySQL性能優化神器Explain的基本使用分析
  • Mysql實驗之使用explain分析索引的走向
  • Mysql Explain命令的使用與分析
  • MySQL Explain使用詳解
  • MySQL中explain語句的基本使用教程

標簽:那曲 山南 濮陽 浙江 四川 安康 平頂山 安徽

巨人網絡通訊聲明:本文標題《mysql開啟慢查詢(EXPLAIN SQL語句使用介紹)》,本文關鍵詞  mysql,開啟,慢,查詢,EXPLAIN,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql開啟慢查詢(EXPLAIN SQL語句使用介紹)》相關的同類信息!
  • 本頁收集關于mysql開啟慢查詢(EXPLAIN SQL語句使用介紹)的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 灵璧县| 高安市| 昌乐县| 清河县| 江安县| 临沂市| 白朗县| 双柏县| 榆树市| 肥东县| 华安县| 张家界市| 临洮县| 通河县| 石城县| 山西省| 荣昌县| 高雄县| 咸宁市| 高台县| 安庆市| 华亭县| 礼泉县| 鲜城| 车险| 岳普湖县| 永和县| 兴隆县| 武夷山市| 定南县| 临潭县| 东明县| 资兴市| 丽江市| 西峡县| 漳州市| 沂水县| 集安市| 谷城县| 开远市| 苏尼特左旗|