久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在mysql數(shù)據(jù)庫(kù)中開啟慢查詢

共計(jì) 1664 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

如何在 mysql 數(shù)據(jù)庫(kù)中開啟慢查詢?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面丸趣 TV 小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

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 查詢

idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra1SIMPLEuserNULLrefuseruser768const1100.00NULL

explain 列的解釋

table:顯示這一行的數(shù)據(jù)是關(guān)于哪張表的

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

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

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

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

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

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

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

key_len 的計(jì)算

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

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

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

不同的字符集,一個(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) 的索引,那么只需要修改原來的索引即可。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝您對(duì)丸趣 TV 的支持。

向 AI 問一下細(xì)節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-04發(fā)表,共計(jì)1664字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 潞西市| 临澧县| 怀集县| 镇沅| 大邑县| 永和县| 建平县| 大宁县| 安图县| 罗定市| 湟中县| 上饶县| 安化县| 阜康市| 布拖县| 松潘县| 阿克苏市| 株洲市| 临高县| 从江县| 宜川县| 奎屯市| 南川市| 舞钢市| 汕尾市| 岐山县| 河津市| 开鲁县| 家居| 虹口区| 衡南县| 株洲市| 通河县| 瓦房店市| 尚志市| 阳原县| 邵东县| 吴堡县| 会泽县| 万盛区| 双江|