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