日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何將你的MySQL查詢速度提升300倍

在進(jìn)行性能分析前,需要先定位耗時(shí)查詢。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、肥東ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的肥東網(wǎng)站制作公司

MySQL提供了內(nèi)建的耗時(shí)查詢?nèi)罩?。使用前,打開my.cnf文件,將slow_query_log設(shè)置為"On"。 同時(shí)將long_query_time設(shè)置為一個(gè)對一次查詢來說比較慢的時(shí)間(秒數(shù)),比如0.2。slow_query_log_file設(shè)置為你想保存日志文件的路徑。然后運(yùn)行代碼,執(zhí)行時(shí)間超過設(shè)定上限的查詢將會(huì)被記錄到日志中。

一旦定位這些煩人的查詢,就可以探究慢的原因。MySQL提供了EXPLAIN關(guān)鍵字??梢耘cSELECT、DELETE、INSERT、REPLACE、UPDATE語句一起使用。只需要如下一樣添加到查詢開始處:

 
 
 
 
  1. EXPLAIN SELECT picture.id, picture.title 
  2. ?FROM picture 
  3. ?LEFT JOIN album ON picture.album_id = album.id?WHERE album.user_id = 1; 

結(jié)果是對數(shù)據(jù)訪問過程的解析。每行代表一個(gè)查詢相關(guān)的數(shù)據(jù)表:

重點(diǎn)是表名、使用的key、查詢執(zhí)行時(shí)所掃描的行數(shù)。

這個(gè)查詢掃描了picture表2百萬行,對每個(gè)picture記錄掃描了album表2萬行。意味著,該查詢實(shí)際掃描了album表400億行。這個(gè)過程可以更高效。

索引

使用索引,可以極大提升性能。比如地址簿中的名字。找一個(gè)名字,你可以從頭翻到尾,也可以找到相應(yīng)的字符標(biāo)簽頁來快速定位。

使用索引可以避免無必要的表掃描。比如在picture.album_id上添加索引:

 
 
 
 
  1. ALTER TABLE picture ADD INDEX(album_id); 

現(xiàn)在執(zhí)行查詢,就不會(huì)掃描整個(gè)picture列表了。首先,所有的album表會(huì)被掃描以找到屬于該用戶的album,然后,使用album_id列索引快速定位對應(yīng)的picture。掃描的行數(shù)減少到了20萬,比原始查詢快了317倍。

按照以下方式添加索引可以確保兩張表都能使用對應(yīng)鍵:

 
 
 
 
  1. ALTER TABLE album ADD INDEX(user_id); 

這次,album表不會(huì)被全部掃描,通過user_id鍵就可以精確定位相應(yīng)的album。然后這100個(gè)album被掃描后,通過album_id鍵相關(guān)的picture也可以快速找到。每張表都用到了一個(gè)鍵進(jìn)行查詢性能優(yōu)化,結(jié)果比原始查詢快了380倍。

但是并不意味著可以隨意添加索引,因?yàn)樗饕龝?huì)導(dǎo)致寫數(shù)據(jù)庫用時(shí)增長。所以使用索引導(dǎo)致讀用時(shí)縮短,寫用時(shí)增長。因此,如果能提升讀性能時(shí)再添加索引。使用EXPLAIN來確認(rèn)索引是否被查詢用到,沒有就刪除。


網(wǎng)站題目:如何將你的MySQL查詢速度提升300倍
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/djogcod.html