×

利用SQL提升網(wǎng)站訪問速度的技巧

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-02-24 17:16:48

使用動態(tài)數(shù)據(jù)庫驅(qū)動的網(wǎng)站,例如WordPress,你的網(wǎng)站可能依然有一個問題亟待解決:數(shù)據(jù)庫查詢拖慢了網(wǎng)站訪問速度。

 使用動態(tài)數(shù)據(jù)庫驅(qū)動的網(wǎng)站,例如WordPress,你的網(wǎng)站可能依然有一個問題亟待解決:數(shù)據(jù)庫查詢拖慢了網(wǎng)站訪問速度。我將介紹如何識別導致性能出現(xiàn)問題的查詢,如何找出它們的問題所在,以及快速修復(fù)這些問題和其他加快查詢速度的方法。我會把門戶網(wǎng)站 deliciousbrains.com 出現(xiàn)的 拖慢查詢速度的情況作為實際的案例。

1483932677068083403.jpg
定位
 
處理慢SQL查詢的第一步是找到慢查詢。Ashley已經(jīng)在之前的 博客 里面贊揚了調(diào)試插件 Query Monitor ,而且這個插件的數(shù)據(jù)庫查詢特性使其成為定位慢SQL查詢的寶貴工具。該插件會報告所有頁面請求過程中的數(shù)據(jù)庫請求,并且可以通過調(diào)用這些查詢代碼或者原件(插件,主題,WordPress核)過濾這些查詢,高亮重復(fù)查詢和慢查詢。
 
要是不愿意在生產(chǎn)安環(huán)境裝調(diào)試插件,也可以打開 MySQL Slow Query Log,這樣在特定時間執(zhí)行的所有查詢都會被記錄下來。這種方法配置和設(shè)置存放查詢位置相對簡單。由于這是一個服務(wù)級別的調(diào)整,性能影響會小于使用調(diào)試插件,但當不用的時候也應(yīng)該關(guān)閉。
 
理解
 
一旦你找到了一個你要花很大代價找到的查詢,那么接下來就是嘗試去理解它并找到是什么讓查詢變慢。最近,在我們開發(fā)我們網(wǎng)站的時候,我們找到了一個要執(zhí)行8秒的查詢。
 
我們使用WooCommerce和定制版的WooCommerce軟件插件來運行我們的插件商店。此查詢的目的是獲取那些我們知道客戶號的客戶的所有訂閱。 WooCommerce是一個稍微復(fù)雜的數(shù)據(jù)模型, 即使訂單以自定義的類型存儲,用戶的ID(商店為每一個用戶創(chuàng)建的WordPress)也沒有存儲在 post_author, 而是作為后期數(shù)據(jù)的一部分。訂閱軟件插件給自義定表創(chuàng)建了一對鏈接。讓我們深入了解查詢的更多信息。
 
MySQL是你的朋友
 
MySQL有一個很方便的語句 DESCRIBE ,它可以輸出表結(jié)構(gòu)的信息,比如字段名,數(shù)據(jù)類型等等。
 
你可能已經(jīng)知道了這個語句。但是你知道 DESCRIBE語句可以放在SELECT, INSERT, UPDATE, REPLACE 和 DELETE語句前邊使用嗎 ?更為人們所熟知的是他的同義詞 EXPLAIN ,并將提供有關(guān)該語句如何執(zhí)行的詳細信息。
 
以上就是利用SQL提升網(wǎng)站訪問速度的技巧。
 

免責聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading