常見的4種方法解決MySQL查詢慢

第一種:分頁查詢(框架自帶的分頁查詢)

1)這種框架自帶的分頁方法,有時(shí)候數(shù)據(jù)量一多就會(huì)比較慢,所以一定要自己些查詢sql語句。 我在項(xiàng)目中就遇到一個(gè)這樣的問題,兩個(gè)表關(guān)聯(lián)分頁查詢,因?yàn)槲沂褂玫氖莍nner join進(jìn)行的關(guān)聯(lián),導(dǎo)致僅有43萬的數(shù)據(jù),查詢了5秒多,后改為left join,用時(shí)1.2秒!

第二種:添加索引

根據(jù)查看執(zhí)行計(jì)劃,對(duì)查詢條件添加對(duì)應(yīng)的索引!

第三種: 使用limit

如果你知道查出來的數(shù)據(jù)的條數(shù),就可以使用limit numb; 我在項(xiàng)目中遇到了一個(gè)問題,兩個(gè)表關(guān)聯(lián)查詢,因?yàn)閿?shù)據(jù)量很大,所以查詢速度很慢,但是我知道只會(huì)查出一條數(shù)據(jù),我就使用了 select * from table where code = xxxx limit 1; 速度僅用了不到1秒;

第四種: 分頁查詢(自己獲取limit的起始位置)

框架的分頁查詢,必然會(huì)有count查詢,因?yàn)樗?jì)算總頁數(shù),但是這樣有時(shí)候會(huì)導(dǎo)致查詢比較慢。我們可以和前端約定好,不展示頁碼,只保留上一頁和下一頁。這樣我們就可以通過計(jì)算頁碼的起始位置和結(jié)束位置來自己分頁查詢了。

舉例:

// 獲取起始位置

publicstaticIntegergetStartIndex(Integer pageNo,Integer pageSize){

return(pageNo -1) * pageSize;

sql:  select * from table limit startIndex, pageSize;


所以,我們?cè)诮鉀Q問題時(shí)候,要根據(jù)不同的業(yè)務(wù)場(chǎng)景,使用不同的辦法解決。如果使用了分頁還是慢的話,就要查看自己的MySQL語句是否有問題!通過查看執(zhí)行計(jì)劃進(jìn)行分析。

創(chuàng)新互聯(lián)還分享了4招MySQL慢查詢問題排查方法

網(wǎng)頁標(biāo)題:常見的4種方法解決MySQL查詢慢
文章起源:http://www.muchs.cn/article34/isgcpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司微信公眾號(hào)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)