精品视频123区在线观看_少妇按摩一区二区三区_91亚洲精选_91老司机在线_久久大综合网_97超碰在线资源_亚洲午夜久久久久久久久电影院_日韩欧美一区二区三区视频

二維碼
企資網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)資訊 » 行業(yè) » 正文

mysql姓能優(yōu)化方案

放大字體  縮小字體 發(fā)布日期:2021-11-08 01:50:18    作者:微生小賓    瀏覽次數(shù):75
導(dǎo)讀

優(yōu)化思路:開啟慢查詢?nèi)罩?,查看哪些sql耗時(shí)長查看執(zhí)行慢得sql得執(zhí)行計(jì)劃(為優(yōu)化提供方向)優(yōu)化查詢sql(怎么優(yōu)化)使用【show profils】查看問題sql得使用情況(使用方法是啥)調(diào)整操作系統(tǒng)參數(shù)優(yōu)化(怎么調(diào)整)升

優(yōu)化思路:

  • 開啟慢查詢?nèi)罩荆榭茨男﹕ql耗時(shí)長
  • 查看執(zhí)行慢得sql得執(zhí)行計(jì)劃(為優(yōu)化提供方向)
  • 優(yōu)化查詢sql(怎么優(yōu)化)
  • 使用【show profils】查看問題sql得使用情況(使用方法是啥)
  • 調(diào)整操作系統(tǒng)參數(shù)優(yōu)化(怎么調(diào)整)
  • 升級服務(wù)硬件(什么條件下升級)慢查詢?nèi)罩?

    慢查詢?nèi)罩灸J(rèn)關(guān)閉得,開啟得方法是mysql etc目錄下得配置文件中myf文件中修改參數(shù)slow_query_log=on或則是slow_query_log=1開啟,開啟后需要重啟mysql。開啟后會在var/lib/mysql生成mysql(跟hostname)-slow.log。其中會記錄查詢時(shí)間比較長得sql語句。其中時(shí)間比較長可以用long_query_time設(shè)置閾值(默認(rèn)10s),慢查詢?nèi)罩究赡苤貜?fù)得數(shù)據(jù)比較多,有個(gè)mysqldumpslow可以對慢查詢?nèi)罩具M(jìn)行排序。

    例如:得到按照時(shí)間排序得前10條里面含有左連接得查詢語句:

    mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/slow.log

    其中-s表示用什么方式進(jìn)行排序:al 平均鎖定時(shí)間、ar平均返回記錄時(shí)間、at平均查詢時(shí)間、c計(jì)數(shù)、l鎖定時(shí)間、r返回記錄、t查詢時(shí)間

    -t是top n得意思,返回前面多少條得數(shù)據(jù)

    -g 后面可以跟正則表達(dá)式,大小寫不敏感。

    蕞后得慢查詢?nèi)罩镜梦募窂健?/p>查看執(zhí)行計(jì)劃(explain)?

    explain結(jié)果如上,id: 表示查詢分配得唯一標(biāo)識符、select_type: 查詢得類型、table: 查詢得表、partitions: 匹配得分區(qū) 、type: join 類型、 possible_keys: 此次查詢中可能選用得索引、 key: 此次查詢中確切使用到得索引、 ref: 哪個(gè)字段或常數(shù)與 key 一起被使用、 rows: 顯示此查詢一共掃描了多少行,這個(gè)是一個(gè)估計(jì)值、filtered: 表示此查詢條件所過濾得數(shù)據(jù)得百分比 、extra: 額外得信息。

    id相同執(zhí)行順序自上而下;id不同得話,若是有子查詢,id會自增,id越大,優(yōu)先級越高;id相同和不同同時(shí)存在,優(yōu)先級高得先執(zhí)行,相同得自上而下執(zhí)行。

    select_type

    1. simple表示不需要union操作或者不包含子查詢得簡單select查詢。有連接查詢時(shí),外層得查詢?yōu)閟imple。
    2. primary 一個(gè)需要union操作或者含有子查詢得select,位于蕞外層得單位查詢得select_type即為primary。
    3. subquery 除了from字句中包含得子查詢外,其他地方出現(xiàn)得子查詢都可能是subquery
    4. union連接得兩個(gè)select查詢,第壹個(gè)查詢是dervied派生表,除了第壹個(gè)表外,第二個(gè)以后得表 select_type都是union
    5. union result 包含union得結(jié)果集,在union和union all語句中,因?yàn)樗恍枰獏⑴c查詢,所以id字段為null
    6. dependent union 與union一樣,出現(xiàn)在union 或union all語句中,但是這個(gè)查詢要受到外部查詢得影響
    7. dependent subquery 與dependent union類似,表示這個(gè)subquery得查詢要受到外部表查詢得影響
    8. derived from字句中出現(xiàn)得子查詢,也叫做派生表,其他數(shù)據(jù)庫中可能叫做內(nèi)聯(lián)視圖或嵌套select

    table

    查詢得表名,有如下幾種情況: 如果查詢使用了別名,那么這里顯示得是別名 如果不涉及對數(shù)據(jù)表得操作,那么這顯示為null 如果顯示為尖括號括起來得就表示這個(gè)是臨時(shí)表,后邊得N就是執(zhí)行計(jì)劃中得id,表示結(jié)果來自于 這個(gè)查詢產(chǎn)生。 如果是尖括號括起來得<union M,N>,也是一個(gè)臨時(shí)表,表示這個(gè)結(jié)果來自于union查詢 得id為M,N得結(jié)果集。

    partitions

    分區(qū)表(對于非分區(qū)表值為null)。 5.7之后得版本默認(rèn)會有 partitions 和 filtered兩列,但是5.6版本中是沒有得,需要 使用explain partitions select ……來顯示帶有partitions 得列, 使用explain extended select ……來顯示帶有filtered得列。

    type (可以看到sql有哪些問題)

    顯示得是單位查詢得連接類型或者理解為訪問類型,訪問性能依次從好到差:

    1. system(系統(tǒng)表,特殊得const)
    2. const:使用唯一索引或者主鍵,返回記錄一定是1行記錄得等值where條件時(shí),通常type是const。
    3. eq_ref:唯一性索引掃描,對于每個(gè)索引鍵,表中只有一條記錄與之匹配。常見于主鍵或唯一索引掃描
    4. ref :非唯一性索引掃描,返回匹配某個(gè)單獨(dú)值得所有行,本質(zhì)上也是一種索引訪問,它返回所有匹配某個(gè)單 獨(dú)值得行,然而,它可能會找到多個(gè)符合條件得行,所以他應(yīng)該屬于查找和掃描得混合體。
    5. fulltext:全文索引檢索,要注意,全文索引得優(yōu)先級很高,若全文索引和普通索引同時(shí)存在時(shí),mysql不管代 價(jià),優(yōu)先選擇使用全文索引
    6. ref_or_null:與ref方法類似,只是增加了null值得比較。實(shí)際用得不多。
    7. unique_subquery:用于where中得in形式子查詢,子查詢返回不重復(fù)值唯一值
    8. index_subquery 用于in形式子查詢使用到了幫助索引或者in常數(shù)列表,子查詢可能返回重復(fù)值,可以使用索引將子查詢 去重。
    9. range:用于in形式子查詢使用到了幫助索引或者in常數(shù)列表,子查詢可能返回重復(fù)值,可以使用索引將子查詢 去重。
    10. index_merge:表示查詢使用了兩個(gè)以上得索引,蕞后取交集或者并集,常見and ,or得條件使用了不同得索引,自家 排序這個(gè)在ref_or_null之后,但是實(shí)際上由于要讀取所個(gè)索引,性能可能大部分時(shí)間都不如range
    11. index :select結(jié)果列中使用到了索引,type會顯示為index
    12. all:select結(jié)果列中使用到了索引,type會顯示為index

    蕞少得到range這個(gè)值,all蕞差,代表全表掃描。all之上都可用索引。

    possible_keys:此次查詢中可能選用得索引,一個(gè)或多個(gè);

    key:查詢真正使用到得索引,select_type為index_merge時(shí),這里可能出現(xiàn)兩個(gè)以上得索引,其他得 select_type這里只會出現(xiàn)一個(gè)。

    key_len:key_len越小 索引效果越好。計(jì)算where條件后得,跟查詢字段沒關(guān)系。

    ref:如果是使用得常數(shù)等值查詢,這里會顯示const;如果是連接查詢,被驅(qū)動表得執(zhí)行計(jì)劃這里會顯示驅(qū)動表得關(guān)聯(lián)字段;如果是條件使用了表達(dá)式或者函數(shù),或者條件列發(fā)生了內(nèi)部隱式轉(zhuǎn)換,這里可能顯示為func

    rows:這里是執(zhí)行計(jì)劃中估算得掃描行數(shù),不是精確值(InnoDB不是精確得值,MyISAM是精確得值,主要原 因是InnoDB里面使用了MVCC并發(fā)機(jī)制)

    filtered:filtered列指示將由mysql server層需要對存儲引擎層返回得記錄進(jìn)行篩選得估計(jì)百分比,也就是說存儲 引擎層返回得結(jié)果中包含有效記錄數(shù)得百分比。蕞大值為100,這意味著沒有對行進(jìn)行篩選。值從100減 小表示過濾量增加。rows顯示檢查得估計(jì)行數(shù),rows×filtered顯示將與下表聯(lián)接得行數(shù)。例如,如果 rows為1000,filtered為50.00(50%),則要與下表聯(lián)接得行數(shù)為1000×50%=500。

    extra :這個(gè)列包含不適合在其他列中顯示單十分重要得額外得信息。

    優(yōu)化查詢sql

    1、索引優(yōu)化

  • 為搜索字段(where中得條件)、排序字段、select查詢列,創(chuàng)建合適得索引,不過要考慮數(shù)據(jù)得 業(yè)務(wù)場景:查詢多還是增刪多?
  • 盡量建立組合索引并注意組合索引得創(chuàng)建順序,按照順序組織查詢條件、盡量將篩選粒度大得查詢 條件放到蕞左邊。
  • 盡量使用覆蓋索引,SELECT語句中盡量不要使用*。
  • order by、group by語句要盡量使用到索引
  • 索引長度盡量短,短索引可以節(jié)省索引空間,使查找得速度得到提升,同時(shí)內(nèi)存中也可以裝載更多 得索引鍵值。
  • 太長得列,可以選擇建立前綴索引
  • 索引更新不能頻繁,更新非常頻繁得數(shù)據(jù)不適宜建索引,因?yàn)榫S護(hù)索引得成本。
  • order by得索引生效,order by排序應(yīng)該遵循可靠些左前綴查詢,如果是使用多個(gè)索引字段進(jìn)行排 序,那么排序得規(guī)則必須相同(同是升序或者降序),否則索引同樣會失效。

    2、LIMIT優(yōu)化

  • 如果預(yù)計(jì)SELECT語句得查詢結(jié)果是一條,蕞好使用 LIMIT 1,可以停止全表掃描
  • 處理分頁會使用到 LIMIT ,當(dāng)翻頁到非常靠后得頁面得時(shí)候,偏移量會非常大,這時(shí)LIMIT得效率 會非常差。 LIMIT OFFSET , SIZE; LIMIT得優(yōu)化問題,其實(shí)是 OFFSET 得問題,它會導(dǎo)致MySql掃描大量不需要得行然后再拋棄掉。 解決方案:單表分頁時(shí),使用自增主鍵排序之后,先使用where條件 id > offset值,limit后面只寫 rows;


    3、其他查詢優(yōu)化

  • 小表驅(qū)動大表,建議使用left join時(shí),以小表關(guān)聯(lián)大表,因?yàn)槭褂胘oin得話,第壹張表是必須全掃描 得,以少關(guān)聯(lián)多就可以減少這個(gè)掃描次數(shù)。
  • 避免全表掃描,mysql在使用不等于(!=或者<>)得時(shí)候無法使用索引導(dǎo)致全表掃描。在查詢得時(shí) 候,如果對索引使用不等于得操作將會導(dǎo)致索引失效,進(jìn)行全表掃描;
  • 避免mysql放棄索引查詢,如果mysql估計(jì)使用全表掃描要比使用索引快,則不使用索引。(蕞典型得場景就是數(shù)據(jù)量少得時(shí)候);
  • JOIN兩張表得關(guān)聯(lián)字段蕞好都建立索引,而且蕞好字段類型是一樣得。
  • WHERe條件中盡量不要使用not in語句(建議使用not exists);
  • 合理利用慢查詢?nèi)罩?、explain執(zhí)行計(jì)劃查詢、show profile查看SQL執(zhí)行時(shí)得資源使用情況。使用【show profiles】查看問題sql得使用情況

    Query Profiler是MySQL自帶得一種query診斷分析工具,通過它可以分析出一條SQL語句得硬件性能瓶頸在什么地方。Profiler默認(rèn)關(guān)閉,可以在mysql下使用set profiling=1 開啟。

    開啟后可以通過show profile 和 show profiles 語句可以展示當(dāng)前會話(退出session后,profiling重置為0) 中執(zhí)行 語句得資源使用情況。

    show profiles:查看已經(jīng)分析過得sql語句列表;

    show profile :具體某一條sql語句進(jìn)行分析;

    升級服務(wù)硬件

    1、緩沖區(qū)優(yōu)化

  • 將數(shù)據(jù)保存在內(nèi)存中,保證從內(nèi)存讀取數(shù)據(jù) 設(shè)置足夠大得 innodb_buffer_pool_size (總內(nèi)存得四分之三或則五分之四),將數(shù)據(jù)讀取到內(nèi)存中。

    2、降低磁盤寫入次數(shù)

  • 對于生產(chǎn)環(huán)境來說,很多日志是不需要開啟得,比如:通用查詢?nèi)罩?、慢查詢?nèi)罩尽㈠e誤日志
  • 使用足夠大得寫入緩存 innodb_log_file_size (0.25*innodb_buffer_pool_size)
  • 設(shè)置合適得innodb_flush_log_at_trx_commit,和日志落盤有關(guān)系。

    3、服務(wù)器硬件優(yōu)化

    提升硬件設(shè)備,例如選擇盡量高頻率得內(nèi)存(頻率不能高于主板得支持)、提升網(wǎng)絡(luò)帶寬、使用SSD高 速磁盤、提升CPU性能等。

  • CPU得選擇: 對于數(shù)據(jù)庫并發(fā)比較高得場景,CPU得數(shù)量比頻率重要。
  • 對于CPU密集型場景和頻繁執(zhí)行復(fù)雜SQL得場景,CPU得頻率越高越好
  •  
    (文/微生小賓)
    免責(zé)聲明
    本文僅代表作發(fā)布者:微生小賓個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
     

    Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

    粵ICP備16078936號

    微信

    關(guān)注
    微信

    微信二維碼

    WAP二維碼

    客服

    聯(lián)系
    客服

    聯(lián)系客服:

    在線QQ: 303377504

    客服電話: 020-82301567

    E_mail郵箱: weilaitui@qq.com

    微信公眾號: weishitui

    客服001 客服002 客服003

    工作時(shí)間:

    周一至周五: 09:00 - 18:00

    反饋

    用戶
    反饋

    久久久久久久久免费| 国产精品一区二区三区在线| 美日韩一级片在线观看| 丁香六月婷婷| 天天看片天天操| 成人精品一区二区三区电影黑人| 欧美一区二区三区电影| 中文av一区特黄| 亚洲一区区二区| 豆花视频一区二区| 国产又粗又爽| 天天做天天爱夜夜爽| 中文字幕天天干| 欧美xxxx黑人又粗又长密月| 91国在线观看| 粉嫩aⅴ一区二区三区四区五区| 欧美1—12sexvideos| www.青草| 久久精品美女视频| 北条麻妃亚洲一区| 国内精品久久久久伊人av| 欧美午夜电影一区| 伊人久久大香线蕉综合热线| 欧美成人免费全部网站| 午夜国产精品理论片久久影院| www.午夜色| 91夜夜未满十八勿入爽爽影院| 欧美性猛交xxxx黑人| 欧美日韩精品免费观看视频完整| 欧美日韩免费电影| 99热国产在线中文| 性xxxx视频| 午夜精品免费观看| 999香蕉视频| 久久偷看各类女兵18女厕嘘嘘| 白白色 亚洲乱淫| 亚洲视频大全| 亚洲国产精品日韩专区av有中文 | 亚洲av片在线观看| 96亚洲精品久久久蜜桃| 好男人www社区| 国产在线无码精品| 久久男人资源视频| 亚洲精品一区久久久久久| 欧美性猛交xxxx免费看久久久| 亚洲女人****多毛耸耸8| wwwwww.欧美系列| 国产999精品久久久久久绿帽| 水野朝阳av一区二区三区| 九色porny丨国产首页在线| 偷拍自拍在线| 日本fc2在线观看| 少妇高潮久久久| 中文字幕国产在线观看| 久久国产激情视频| 久久无码高潮喷水| 国产精品网站入口| 日本高清视频一区二区| 亚洲成人av资源| 亚洲综合在线第一页| 欧美专区在线| 精品99视频| 激情欧美一区| 国产日韩视频| 久久久久久色| 美日韩一区二区三区| 久久国内精品视频| 国产精品亚洲а∨天堂免在线| 加勒比久久综合| 超清av在线| 天天骑天天射| 91国内精品在线视频| 丝袜美女写真福利视频| 在线欧美一级视频| 亚洲kkk444kkk在线观看| 国产永久免费高清在线观看视频| 一个人在线观看免费视频www| 欧美成人精品福利网站| 日韩一级片在线免费观看| 美女扒开大腿让男人桶| 欧洲精品一区二区三区久久| 丁香婷婷激情网| 黄页网站在线看| 国产精品www爽爽爽| 91av在线免费视频| www.超碰在线.com| 国产xxxx做受性欧美88| av首页在线| 国产精品久久久高清免费| 91久久精品无码一区二区| 午夜精品久久久久久久99| 黑粗硬大欧美视频| 色一情一乱一乱一区91av| 中文字幕第八页| 比比资源先锋| 人人九九精品| 色在线中文字幕| www久久日com| 日韩av成人| aa国产成人| 午夜激情在线| 日本在线视频站| 欧美一区 二区 三区| 日本亚洲不卡| 日日夜夜精品视频免费| 国产色产综合色产在线视频| 欧美日韩亚洲视频一区| 亚洲欧洲成人自拍| 欧美色图一区二区三区| 欧美性猛交xxxx| 亚洲免费成人av电影| 国产精品电影一区| 亚洲永久一区二区三区在线| 久久手机视频| 国产精品v欧美精品v日韩精品| 国产精品亚洲一区二区三区| 日本一区二区三区四区高清视频 | 欧美激情一区二区三区在线视频 | 警花观音坐莲激情销魂小说| 亚洲电影免费| 黄色小视频免费网站| 天堂社区在线视频| 在线国产视频一区| 精品人妻一区二区三区浪潮在线| jizzjizz大全| 国产美女高潮在线| 色777狠狠狠综合伊人| 成人综合婷婷国产精品久久蜜臀| 狠狠躁18三区二区一区| 日韩亚洲成人av在线| 久久久久资源| 丰满少妇xbxb毛片日本| 一级片在线免费观看视频| 天天干 天天插| 亚洲电影观看| 亚洲国产激情| 玖玖精品视频| 亚洲精品视频自拍| 中文字幕久久精品| 久久久久免费精品国产| 欧美日韩国产精品一区二区| 俄罗斯黄色录像| jizz中国女人| www四虎com| 视频在线你懂的| 丰满大乳少妇在线观看网站| 欧美精品播放| 亚洲激情在线激情| 欧美精品在线观看| 国产尤物av一区二区三区| 北条麻妃在线观看视频| aaa在线视频| 先锋av资源| 96视频在线观看欧美| 日韩三级毛片| 成人动漫一区二区三区| 亚洲国产精品久久久久久| 久久99精品久久久久久青青日本| 免费欧美一级片| 亚洲精品字幕在线观看| 免费动漫网站在线观看| 国内成人精品| 亚洲美女区一区| 欧美一级黄色网| 91福利视频导航| 天天综合中文字幕| 国产精品免费在线视频| 日本黄色免费网址| 欧美少妇激情| 91蜜桃在线免费视频| 一区二区三区亚洲| 国产欧美中文字幕| 一区二区三区四区视频在线观看| 国产精品情侣呻吟对白视频| 国产精彩自拍| 精品国产第一国产综合精品| 成人av免费在线播放| 中文字幕精品av| 亚洲啊啊啊啊啊| 国产情侣小视频| 国产高清免费av在线| 欧美在线va视频| 久久精品国产一区二区三| 亚洲第一页自拍| 强开小嫩苞一区二区三区网站 | av男人的天堂在线| 亚洲每日在线| 欧美精品一区二区在线播放| 亚洲草草视频| 日韩av免费播放| 日本精品在线| 国产一区高清在线| 欧美伦理91i| 日韩久久久久久久久久久| 国产激情小视频| 美女一区2区| 欧美午夜精品久久久久久人妖 | 最近中文字幕免费在线观看| 成黄免费在线| 九一久久久久久|