已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MySQL查詢語句優(yōu)化 Peng xu 2010 11 19 目錄 為什么要對查詢進(jìn)行優(yōu)化哪些方面可以優(yōu)化MySQL索引機(jī)制如何發(fā)現(xiàn)慢查詢?nèi)绾畏治雎樵內(nèi)罩静樵冋Z句優(yōu)化實(shí)例分析 為什么要對查詢進(jìn)行優(yōu)化 雅虎大部分產(chǎn)品都是對DB讀取量大 寫入量少一個快速的頁面能顯著增加用戶體驗(yàn)一個沒有調(diào)試過的SQL會弄死整個網(wǎng)站 哪些方面可以優(yōu)化 優(yōu)化硬件 操作系統(tǒng)優(yōu)化MySQL服務(wù)器優(yōu)化DB設(shè)計(jì)優(yōu)化SQL語句優(yōu)化應(yīng)用 MySQL索引機(jī)制 什么是索引與表數(shù)據(jù)分開的獨(dú)立的有序的物理結(jié)構(gòu)索引的數(shù)據(jù)結(jié)構(gòu)Btree Hash索引的種類主鍵 唯一索引 普通索引 復(fù)合索引 外鍵索引 如何發(fā)現(xiàn)慢查詢 1 查看MySQLSlowQuery修改f文件long query time 2log slow queries home y logs mysql mysqld slow log 如何發(fā)現(xiàn)慢查詢 2 用ysar命令查看在db服務(wù)器上安裝包ysar ysar mysql用ysar my命令查看 如何發(fā)現(xiàn)慢查詢 3 查看yapacheslow日志 為yapache安裝yapache mod yahoo slow log包找出加載慢的頁面 如何分析慢查詢?nèi)罩?mysqldumpslow sc t20host slow log按查詢次數(shù)排序 top20mysqldumpslow st t20host slow log按查詢時間排序 top20 使用MySQL自帶的mysqldumpslow命令分析 實(shí)例分析所用環(huán)境 開發(fā)機(jī) h07 操作系統(tǒng) RHEL64 bitMySQL版本 mysql server 5 1 45 0 查詢語句優(yōu)化實(shí)例分析 單表 索引字段上進(jìn)行運(yùn)算會使索引失效usenengren 查詢2009年12月的文章explainselectdate format from unixtime create time Y m asdfromarticlewheredate format from unixtime create time Y m 200912 orderbycreate timeasclimit10 測試 運(yùn)算查詢更慢explainselectdate format from unixtime create time Y m asdfromarticlewhere create time 100 1259596800andcreate time 1259596800andcreate time 1262275200orderbycreate timeasclimit10 查詢語句優(yōu)化實(shí)例分析 單表 MySQL選擇的索引不一定是最好的usenengren 原始SQLexplainSELECTcount ascount stock code stock nameFROMarticleWHEREactive type 1ANDcreate time 1259596800GROUPBYstock codeLIMIT10 優(yōu)化后 執(zhí)行看效果 選擇少的記錄集更重要 explainSELECTcount ascount stock code stock nameFROMarticleUSEINDEX idx createtime WHEREactive type 1ANDcreate time 1259596800GROUPBYstock codeLIMIT10 查詢語句優(yōu)化實(shí)例分析 單表 簡單的分頁方法 usenengren 原始SQLexplainselectarticle id titlefromarticleorderbyarticle iddesclimit30000 10 優(yōu)化后explainselectarticle id titlefromarticlewherearticle id 100000orderbyarticle iddesclimit10 查詢語句優(yōu)化實(shí)例分析 兩表 兩表關(guān)聯(lián)查詢增加排序字段 能夠啟用索引 優(yōu)化前explainselecti gallery id i imagewidth t fromimage tagtinnerjoinimageioni imageurl t index urllimit0 10 優(yōu)化后explainselecti gallery id i imagewidth t fromimage tagtinnerjoinimageioni imageurl t index urlorderbyt iddesclimit0 10 查詢語句優(yōu)化實(shí)例分析 兩表 兩表關(guān)聯(lián)查詢加上排序字段后有時也無法啟用索引 usenengren test 優(yōu)化前 生產(chǎn)機(jī)b和開發(fā)機(jī)explain結(jié)果不一樣 需使用AnalyzeTable修復(fù)索引 explainselecta article id a title b telfromarticleainnerjoinnengrenbona yuid b yuidorderbya article iddesclimit10 優(yōu)化后explainselecta article id a title b telfromarticlealeftjoinnengrenbona yuid b yuidorderbya article iddesclimit10 查詢語句優(yōu)化實(shí)例分析 三表 一個三表關(guān)聯(lián)查詢的優(yōu)化 usejack 原始SQLexplainselecti id i icon i nickname i name i gender i applyTime v valuefromcontestant infoasiinnerjoincontestant statusassoni id s idleftjoinvotesasvoni id v uidwheres status 查詢語句優(yōu)化實(shí)例分析 三表 使用子查詢優(yōu)化selecta id a icon a nickname a name a gender a applyTime b valuefrom selecti id i icon i nickname i name i gender i applyTimefromcontestant infoasiinnerjoincontestant statusassoni id s idwheres status 查詢語句優(yōu)化實(shí)例分析 三表 三表關(guān)聯(lián)SQL的簡化 原始SQLexplainselectcount i id as cnt fromcontestant infoasileftjoincontestant statusassoni id s idleftjoinvotesasvoni id v uidwheres status 查詢語句優(yōu)化實(shí)例分析 三表 與上面的SQL取得的結(jié)果不同explainselectcount fromcontestant infoasileftjoin selectidfromcontestant statuswhereid 38570 assoni id s id 如果contestant status是contestant info的子集 votes是contestant status的子集 那么優(yōu)化后的SQLexplainselectcount id as cnt fromcontestant statuswherestatus 查詢語句優(yōu)化實(shí)例分析 三表 有時MySQL選擇的索引是最好的 減少記錄集比去掉filesort更重要 usenengren 原始SQLexplainSELECTb grade a FROMarticleASaforceindex idx createtime INNERJOIN SELECTm n grade n point n point toplistFROMnengrenASmINNERJOINnengren pointASnONm yuid n yuidWHEREm status 1ANDn grade 4 ASbONa yuid b yuidWHEREa forecast type 1ANDa forecast yn 0ANDa trend 1ANDa active type 1ORDERBYa create timeDESCLIMIT10 優(yōu)化后explainSELECTa article id n grade a titleFROMarticleASaINNERJOINnengrenasmona yuid m yui
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 膝挫傷的健康宣教
- 作文講座課件標(biāo)準(zhǔn)
- 部編人教版三年級語文下冊知識分類專項(xiàng)訓(xùn)練(附答案)
- 肝膽急癥的護(hù)理
- 2021年潤滑油添加劑行業(yè)瑞豐新材分析報(bào)告
- 體積和表面積的比較課件
- 《教材和原教材的》課件
- 急性女陰潰瘍的臨床護(hù)理
- 暈車的健康宣教
- 產(chǎn)后腳跟痛的健康宣教
- 紙袋制造機(jī)產(chǎn)業(yè)深度調(diào)研及未來發(fā)展現(xiàn)狀趨勢
- 2024年職業(yè)病危害防治培訓(xùn)試題
- 維修作業(yè)區(qū)修理工上崗試卷+答案
- 譯林新版(2024)七年級英語上冊Unit 5 Welcome to the unit課件
- 建筑施工安全檢查標(biāo)準(zhǔn)JGJ59-2011
- 數(shù)控類論文開題報(bào)告
- 2024內(nèi)蒙古文物考古研究所招聘歷年高頻500題難、易錯點(diǎn)模擬試題附帶答案詳解
- 農(nóng)村安全飲水工程項(xiàng)目劃分表
- 智聯(lián)國企行測筆試真題
- 2025屆新高考物理熱點(diǎn)精準(zhǔn)復(fù)習(xí):高中物理6大模塊計(jì)算題思路總結(jié)
- 2025屆江蘇省期無錫市天一實(shí)驗(yàn)學(xué)校數(shù)學(xué)七年級第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
評論
0/150
提交評論