多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > MySql > 一次mysql優化經歷

一次mysql優化經歷

來源:程序員人生   發布時間:2014-08-21 15:42:09 閱讀次數:3679次

某日運維突然說無線終端的頻道頁接口訪問量很大,memcache緩存扛不過來,導致mysql并發查詢量太大,導致服務器不停地宕機,只能不停地重啟機器。遺憾的是運維并沒有告訴mysql查詢量具體有多大【無量化,比如一秒多少個查詢…】。

針對這個問題,有同事建議改了mysql+memcache的架構,采用redis存儲更佳。但是問題的真正原因是什么呢?mysql一秒鐘扛幾百個并發查詢應該是可以的吧?帶著疑問,我讓運維給出慢查詢log。

Oh,my god…慢查詢記錄太多,都是一秒鐘以上的,但是基本上是同一條語句的查詢。explain一下:

Sql語句中有order by zj_lastupdate,明明在這個字段上建立了索引的,但為什么沒用呢【這個表上建立了太多聯合索引,以致zj_lastupdate被無視了】,所以導致這條查詢使用了臨時表【using temporary】和文件排序【usingfilesort】。

 解決的辦法是在sql語句中加上use index(zj_lastupdate),提醒mysql引擎使用指定索引字段。再explain一下:

顯然,這次查詢引擎會使用zj_lastupdate了。

優化的效果是相當的明顯,從之前的1.5秒降到0.015秒,百倍的性能提升。當然,這個問題解決之后,也就沒有出現宕機的情形了,我們也沒有改架構。

 

再說一個mysql優化經歷,2表相連,一對一的關系,優化之前的sql語句大概是selectdistinct(movieid) as id…,explain的結果是:

顯然,一對一關系的表,無需添加distinct關鍵字【算是畫蛇添足吧】,去掉之后,再explain:

優化前后性能提升10倍左右。

 

Mysql的查詢優化有很多基礎理論,可以從查詢語句,表結構【分表,字段冗余】,字段類型,索引,存儲引擎,緩存,系統內核參數,磁盤IO等方面考慮,但是很重要的一點是寫出具體的sql語句,針對這特定的語句進行具體的優化,當然前提是保證結果是準確的。

 

 

 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 午夜理伦三级播放 | 国产免费一级高清淫日本片 | 中文国产成人精品久久一 | 亚洲一区影院 | 久久国产精品一区二区三区 | 日本欧美日韩 | jlzzjlzz在线播放中国视频 | 国产18到20岁美女毛片 | 最近更新中文字幕7 | 亚洲国产二区三区久久 | 九九精品免视频国产成人 | 日本一区三区 | 日本一本视频 | 伊人久久99 | 国产成人三级视频在线观看播放 | 中文字幕在线影院 | 激情综合亚洲欧美日韩 | 自拍偷拍欧美图片 | 激情网站视频 | 91精品国产福利在线观看性色 | 国产亚洲久久 | 九九九精品午夜在线观看 | 日本亚洲精品成人 | jizzzz日本 | www.伊人| 亚洲精品综合一区二区 | 国产精品亚洲综合一区在线观看 | 欧美13一14娇小性视频 | 国产精品二区三区免费播放心 | 久久综合九色综合桃花 | 天天拍夜夜添久久精品中文 | 亚洲天堂黄色 | 精品一区二区三 | 亚洲欧美精品日韩欧美 | 欧美性淫爽www视频播放 | 国产成人久久精品推最新 | 色人阁久久 | 在线观看亚洲免费 | 国产免费69成人精品视频 | 国产精品热久久毛片 | 国产一区二区三区高清视频 |