最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年01月25日 19:33:44   投稿:mdxy-dxy  
這篇文章主要介紹了mysql開啟慢查詢 EXPLAIN SQL語(yǔ)句,需要的朋友可以參考下

今天,數(shù)據(jù)庫(kù)的操作越來(lái)越成為整個(gè)應(yīng)用的性能瓶頸了,這點(diǎn)對(duì)于Web應(yīng)用尤其明顯。關(guān)于數(shù)據(jù)庫(kù)的性能,這并不只是DBA才需要擔(dān)心的事,而這更是我們程序員需要去關(guān)注的事情。當(dāng)我們?nèi)ピO(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu),對(duì)操作數(shù)據(jù)庫(kù)時(shí)(尤其是查表時(shí)的SQL語(yǔ)句),我們都需要注意數(shù)據(jù)操作的性能。

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慢查詢?nèi)罩纠锍霈F(xiàn)的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:顯示這一行的數(shù)據(jù)是關(guān)于哪張表的

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

  • possible_keys:顯示可能應(yīng)用在這張表中的索引。如果為空,沒有可能的索引??梢詾橄嚓P(guān)的域從where語(yǔ)句中選擇一個(gè)合適的語(yǔ)句

  • key: 實(shí)際使用的索引。如果為null,則沒有使用索引。很少的情況下,mysql會(huì)選擇優(yōu)化不足的索引。這種情況下,可以在select語(yǔ)句中使用use index(indexname)來(lái)強(qiáng)制使用一個(gè)索引或者用ignore index(indexname)來(lái)強(qiáng)制mysql忽略索引

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

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

  • rows:mysql認(rèn)為必須檢查的用來(lái)返回請(qǐng)求數(shù)據(jù)的行數(shù)

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

key_len的計(jì)算

  1. 所有的索引字段,如果沒有設(shè)置not null,則需要加一個(gè)字節(jié)。

  2. 定長(zhǎng)字段,int占四個(gè)字節(jié)、date占三個(gè)字節(jié)、char(n)占n個(gè)字符。

  3. 對(duì)于變成字段varchar(n),則有n個(gè)字符+兩個(gè)字節(jié)。

  4. 不同的字符集,一個(gè)字符占用的字節(jié)數(shù)不同。latin1編碼的,一個(gè)字符占用一個(gè)字節(jié),gbk編碼的,一個(gè)字符占用兩個(gè)字節(jié),utf8編碼的,一個(gè)字符占用三個(gè)字節(jié)。

3、建索引的幾大原則

  • 最左前綴匹配原則,非常重要的原則,mysql會(huì)一直向右匹配直到遇到范圍查詢(>、<、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的順序可以任意調(diào)整。

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

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

  • 索引列不能參與計(jì)算和函數(shù)的使用,保持列干凈。

  • 盡量的擴(kuò)展索引,不要新建索引。比如表中已經(jīng)有a的索引,現(xiàn)在要加(a,b)的索引,那么只需要修改原來(lái)的索引即可。

相關(guān)文章

  • MySQL如何優(yōu)雅的刪除大表實(shí)例詳解

    MySQL如何優(yōu)雅的刪除大表實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL如何優(yōu)雅的刪除大表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解MySQL8中的新特性窗口函數(shù)

    詳解MySQL8中的新特性窗口函數(shù)

    MySQL8?窗口函數(shù)是一種特殊的函數(shù),它可以在一組查詢行上執(zhí)行類似于聚合的操作,但是不會(huì)將查詢行折疊為單個(gè)輸出行,而是為每個(gè)查詢行生成一個(gè)結(jié)果,本文就來(lái)和大家簡(jiǎn)單講講它的用法,感興趣的可以了解一下
    2023-06-06
  • windows10系統(tǒng)安裝mysql-8.0.13(zip安裝) 的教程詳解

    windows10系統(tǒng)安裝mysql-8.0.13(zip安裝) 的教程詳解

    這篇文章主要介紹了windows10安裝mysql-8.0.13(zip安裝) 的教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • mysql sql語(yǔ)句總結(jié)

    mysql sql語(yǔ)句總結(jié)

    mysql sql語(yǔ)句總結(jié),都是一些比較實(shí)用簡(jiǎn)單的語(yǔ)句。一定要掌握的。
    2009-11-11
  • MySQL數(shù)據(jù)庫(kù)添加外鍵的四種方式

    MySQL數(shù)據(jù)庫(kù)添加外鍵的四種方式

    這篇文章主要介紹了ysql數(shù)據(jù)庫(kù)添加外鍵的四種方式, 建表時(shí)直接使用FOREIGN KEY,建表時(shí)使用CONSTRAINT,在建表以后使用ALTER語(yǔ)句以及 使用第三方工具這四種方式,需要的朋友可以參考下
    2024-03-03
  • 最全的mysql 5.7.13 安裝配置方法圖文教程(linux) 強(qiáng)烈推薦!

    最全的mysql 5.7.13 安裝配置方法圖文教程(linux) 強(qiáng)烈推薦!

    這篇文章主要為大家詳細(xì)介紹了linux下mysql 5.7.13 安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、啟用事件(ENABLE)、事件重命名及數(shù)據(jù)庫(kù)事件遷移操作詳解

    mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、啟用事件(ENABLE)、事件重命名及數(shù)

    這篇文章主要介紹了mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、啟用事件(ENABLE)、事件重命名及數(shù)據(jù)庫(kù)事件遷移操作,詳細(xì)分析了mysql數(shù)據(jù)庫(kù)事件的修改、禁用、啟用、重命名、遷移等原理與操作技巧,需要的朋友可以參考下
    2019-12-12
  • MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解決方法

    MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc

    File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file
    2013-08-08
  • Win7 安裝 Mysql 5.6的教程圖解

    Win7 安裝 Mysql 5.6的教程圖解

    這篇文章主要介紹了Win7 安裝 Mysql 5.6的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • MySQL之join查詢優(yōu)化方式

    MySQL之join查詢優(yōu)化方式

    這篇文章主要介紹了MySQL之join查詢優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

五家渠市| 宜都市| 湄潭县| 塔城市| 旺苍县| 景泰县| 大厂| 阳新县| 景德镇市| 南通市| 米泉市| 贵定县| 方城县| 洛隆县| 磴口县| 四子王旗| 贵南县| 漳州市| 永福县| 田东县| 牡丹江市| 临邑县| 公安县| 宿迁市| 安阳市| 师宗县| 平阴县| 大同市| 共和县| 沅江市| 襄垣县| 济阳县| 东丽区| 安陆市| 新和县| 余江县| 江北区| 寿宁县| 万宁市| 古交市| 娄底市|