2021-02-14 分類: 網(wǎng)站建設(shè)
一打開科技類論壇,最??吹降奈恼轮黝}就是MySQL性能優(yōu)化了,為什么要優(yōu)化呢?
因為:
就是咱們說的“性能問題”,程序員一遇到它總是焦頭爛額!
今天小編對MySQL優(yōu)化總結(jié)了一些心得,希望在大家之后的工作中能有所有幫助!
示例二:
not in 和 not exist
如果查詢語句使用了not in 那么內(nèi)外表都進(jìn)行全表掃描,沒有用到索引;而not exist 的子查詢依然能用到表上的索引。所以無論哪個表大,用not exists都比not in要快!
子查詢優(yōu)化
straight_join
mysql hint:
Mysql 優(yōu)化器在處理多表的關(guān)聯(lián)的時候,很有可能會選擇錯誤的驅(qū)動表進(jìn)行關(guān)聯(lián),導(dǎo)致了關(guān)聯(lián)次數(shù)的增加,從而使得sql語句執(zhí)行變得非常的緩慢。
這個時候需要有經(jīng)驗的DBA進(jìn)行判斷,選擇正確的驅(qū)動表,這個時候 straightjoin 就起了作用了,下面我們來看一看使用straight_join進(jìn)行優(yōu)化的案例:
嘗試采用user表做驅(qū)動表,使用straight_join強(qiáng)制連接順序:
高效分頁
傳統(tǒng)分頁:
- select?*?from?table?limit?10000,10?
limit原理:
推薦分頁:
復(fù)雜關(guān)聯(lián)SQL的優(yōu)化
force index
有時優(yōu)化器可能由于統(tǒng)計信息不準(zhǔn)確等原因,沒有選擇最優(yōu)的執(zhí)行計劃,可以人為改變mysql的執(zhí)行計劃,例如:
count的優(yōu)化
按照效率排序的話,count(字段)
總結(jié)
MySQL 性能優(yōu)化 最主要是理解 innodb 的索引原理及結(jié)構(gòu)及 SQL 的執(zhí)行計劃,在不斷累積經(jīng)驗的基礎(chǔ)上熟能生巧。
當(dāng)前文章:DBA大牛MySQL優(yōu)化心得
分享地址:http://jinyejixie.com/news21/100821.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、建站公司、域名注冊、網(wǎng)站排名、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容