最新国产精品视频免费看_99热这里只有精品在线_无码精品人妻一区_欧美精品丝袜久久久中文字幕

為什么要做MySQL優化?MySQL優化SQL的方法是什么

為什么要做MySQL優化

Mysql優化
Mysql優化

在面對不夠優化、或者性能極差的SQL語句時,我們通常的想法是將重構這個SQL語句,讓其查詢的結果集和原來保持一樣,并且希望SQL性能得以提升。而在重構SQL時,一般都有一定方法技巧可供參考,今天來聊一下為什么要做MySQL優化,MySQL優化SQL的方法是什么?

MySQL優化SQL的方法是什么?

分解SQL

有時候對于一個復雜SQL,我們首先想到的是是否需要將一個復雜SQL分解成多個簡單SQL,來完成相同業務處理結果。

在以前,大家總是強調需要數據庫層來完成盡可能的工作,這也就不難理解在一些老的產品、項目中時常會看見很多超級復雜、超級長的SQL語句,這樣做的邏輯在以前認為多次交互,在網絡帶寬、程序與數據庫間網絡通信等方面是一件代價很高的事情。然后在現在,無論是帶寬還是延遲,網絡速度比以前要快的很多,多次交互也沒有太大的問題。即使在一個通用服務器上,也能夠運行每秒超過10萬的查詢,所以運行多個小查詢現在已經不是大問題了。

復雜SQL的分解,在面對超級復雜SQL語句時,性能提升尤為明顯。所以,在面對超級復雜SQL語句,并且存在性能問題時,推薦分解為小查詢來進行優化。

不過,在應用設計的時候,如果一個查詢能夠勝任并且不會產生性能問題,這時完全可以用一個稍微復雜的SQL來完成的,倘若再死板的強制拆分成多個小查詢是不明智的。

在當今很多高性能的應用系統中,都是極力推薦使用單表操作,然后將單表查詢結果在應用程序中進行關聯,以滿足復雜業務的查詢需求一個SQL可以搞定事情,為何要分開來寫,而且還得在應用程序中多次執行SQL查詢,再進行結果集的關聯,這到底為什么要這么做呢?

乍一看,這樣做復雜不說而且沒有什么好處,原本一條查詢,這樣卻變成了多條查詢。事實上,這樣分解有如下的優勢:

  • 讓緩存更高效。在應用程序中,可以很方便地緩存單表查詢結果對應的結果對象,便于后續任何時候可以直接從結果對象中獲取數據。
  • 分解查詢后,執行單個查詢可以減少表鎖的競爭。
  • 在程序應用層做關聯,可以更容易對數據庫進行拆分,更容易做到高性能和可擴展。
  • 單表查詢效率高于多表復雜查詢。
  • 減少冗余記錄的查詢。在程序應用層關聯,意味著對于某條記錄應用只需要查詢一次,而在數據庫中做關聯查詢,則可能需要重復地訪問一部分數據記錄。從這點來看,這樣的重構還可能減少網絡和內存的消耗。

查詢切分

有時候對于一個大查詢,即:結果集很大的查詢,我們需要采用“分而治之”的思想,將大查詢切分為小查詢,每個查詢功能完全一樣,只是完成一小部分,每次只返回一小部分查詢結果。通俗來講,就是對where條件的過濾范圍進行切分,每次只查詢其中一部分數據,即:類似于分頁查詢。

這樣做,不管對于SQL查詢本身,還是對于上層業務來說,都是很小的開銷。最典型的的案例就是分頁查詢,目前各類框架都有了很好的支持,如:MyBatis等,只需在實際使用時稍加留意就可避免。

執行計劃

使用執行計劃EXPLAIN關鍵字,可以使我們知道MySQL是如何執行SQL語句的,這樣可以幫助我們分析我們的查詢語句或是表結構的性能瓶頸。EXPLAIN的查詢結果還會告訴我們索引主鍵是如何被利用的,數據表是如何被搜索或排序的…等等。

語法格式是:

EXPLAIN SELECT語句;

通過執行計劃結果,將會指導我們進一步來重構SQL語句,如:增加索引、調整索引順序、避免使用某些函數等等。

關于執行計劃,后續章節將會單獨詳細講解。

遵守原則

在平時寫SQL時,養成好的習慣,多加留意,很大程度上就會避免一些SQL性能問題。匯總如下:

  • 永遠為每張表設置一個ID主鍵。
  • 避免使用SELECT *。
  • 為搜索字段建立索引。
  • 在Join表的時候使用對應類型的列,并將其索引。
  • 盡可能的使用NOT NULL。
  • 越小的列會越快。
  • 當只要一行數據時使用LIMIT 1。
  • 操作符的優化,盡量不采用不利于索引的操作符,目的就是為了避免全表掃描。

1)in 和not in慎用,盡量用between代替in,用 not exists 代替 not in
2)is null和is not null慎用
3)!=或<>操作符能不用就不用,否則將使引擎放棄使用索引而進行全表掃描。

使用查詢緩存

當有很多相同的查詢被執行了多次的時候,這些查詢結果會被放入一個緩存中,這樣后續的相同查詢就不用操作而直接訪問緩存結果了。

MySQL查詢緩存保存查詢返回的完整結果。當查詢命中該緩存,MySQL會like返回結果,跳過了解析、優化和執行截斷。

這是提高查詢性能最有效的方法之一,而且這是被MySQL引擎處理的,通常MySQL默認是不開啟查詢緩存的,需要手動開啟。

查詢緩存對應用程序是完全透明的。應用程序無需關心MySQL是通過查詢返回的還是實際執行返回的結果。事實上,這兩種方式執行的結果是完全相同的。換句話說,查詢緩存無需使用任何語法。

隨著現在的通用服務器越來越強大,查詢緩存被發現是一個影響服務器擴展性的因素。它可能成為整個服務器的資源競爭單點,在多核服務器上還可能導致服務器僵死。所以大部分時候應該默認關閉查詢緩存,如果查詢緩存作用很大的話,可以配置個幾十兆的小緩存空間。(在選擇時,需要進行權衡)

關于查詢緩存有如下參數可供配置:

  • query_cache_type

是否打開查詢緩存。可以設置OFF、ON、DEMAND,DEMAND表示只有在查詢語句中明確寫入sql_cache的語句才放入查詢緩存。

  • query_cache_size

查詢緩存使用的總內存空間,單位是字節。這個值必須是1024的整倍數,否則實際分配的數據會和指定的大小有區別。

  • query_cache_min_res_unit

在查詢緩存中分配內存塊時的最小單位。

  • query_cache_limit

緩存的最大查詢結果。如果查詢結果大于這個值,則不會被緩存。因為查詢緩存在數據生成的時候就開始嘗試緩存數據,所以只有當結果全部返回后,MySQL才知道查詢結果是否超出限制。

關于查詢緩存,后續章節將會單獨詳細講解。

關于我們:

Infocode藍暢信息技術有限公司成功為多家世界財富500強企業以及其他著名品牌提供優質服務,是您靠譜的互聯網開發供應商。

服務客戶遍及北京、上海、杭州、深圳、廣州、天津、青島、南京、寧波、蘇州、無錫、廈門、重慶、西安等大中型城市及地區 ? ?為您提供:網站SEO優化, SEO整站優化,網站SEO托管,企業網站優化,營銷型網站開發,新聞稿發布推廣等服務

影視類小程序開發主要的功能是什么?



請輸入姓名或昵稱
如果您有任何疑問、需要更多信息或希望與我們建立合作請留言
=

本文來自網絡 由藍暢整理,經授權后發布,本文觀點不代表Infocode藍暢信息技術立場,轉載請聯系原作者。

(0)
Infocode藍暢Infocode藍暢
上一篇 2020年8月16日 上午3:49
下一篇 2020年8月28日 下午11:42
欧美另类高清视频在线| 国产一区再线| 国产一区二区三区在线观看免费 | 一本色道久久综合狠狠躁篇的优点 | 国产精品主播| 国产精品嫩草影院一区二区| 韩国女主播一区二区三区| 99精品国产在热久久婷婷| 久久精品综合一区| 欧美日韩一二三区| 亚洲高清视频的网址| 香蕉久久精品日日躁夜夜躁| 国产精品成人aaaaa网站| 久久精品一区二区三区不卡牛牛| 欧美日韩国产综合视频在线观看中文| 国产一区深夜福利| 亚洲无限av看| 欧美成人精品福利| 国内精品99| 新狼窝色av性久久久久久| 亚洲日韩中文字幕在线播放| 美日韩精品视频免费看| 国产精品嫩草99a| 亚洲美女淫视频| 免费成人av在线| 国内久久视频| 亚洲欧美三级在线| 欧美日韩在线播放一区| 亚洲国产精品久久| 欧美黄色大片网站| 国产精品久久久99| 99视频超级精品| 免费亚洲一区| 国产中文一区二区| 欧美一级淫片aaaaaaa视频| 欧美三级视频| 日韩写真视频在线观看| 国产亚洲激情| 欧美成人精品1314www| 国产日韩综合一区二区性色av| 一区二区三区不卡视频在线观看| 免费欧美视频| 在线免费观看日本一区| 久久精品五月| 国产综合色精品一区二区三区| 亚洲欧美一区二区激情| 久久一区精品| 欧美视频手机在线| 99在线热播精品免费| 欧美黄色aa电影| 亚洲福利电影| 欧美a级一区| 亚洲风情在线资源站| 久久亚洲风情| 在线观看成人一级片| 久久青青草综合| 久久久久国产精品一区| 国产区在线观看成人精品| 亚洲影音先锋| 国产精品网红福利| 欧美一级艳片视频免费观看| 国产伦理一区| 欧美亚洲网站| 国产一区二区三区高清| 久久国产66| 精品动漫一区| 免费看亚洲片| 亚洲精品美女在线观看| 欧美日韩国产成人在线免费 | 欧美激情一区三区| 亚洲精品永久免费精品| 欧美经典一区二区三区| 99这里只有久久精品视频| 欧美日韩国产色综合一二三四 | 久热爱精品视频线路一| 亚洲国产综合在线| 欧美国产精品专区| aⅴ色国产欧美| 国产精品啊啊啊| 欧美一区二区黄色| 国产日韩欧美成人| 久久综合色播五月| 99re成人精品视频| 国产精品多人| 久久精品一区二区国产| 亚洲成人在线| 欧美日本一道本| 午夜精品一区二区在线观看| 国产一区二区看久久| 麻豆精品视频在线| 一本色道久久综合亚洲精品不 | 香蕉久久精品日日躁夜夜躁| 韩国精品在线观看| 久久精品噜噜噜成人av农村| 国产精品国产三级国产专区53| 亚洲欧美视频一区| 激情欧美一区二区三区在线观看| 免费亚洲网站| 亚洲狠狠婷婷| 亚洲永久字幕| 韩曰欧美视频免费观看| 欧美成人亚洲| 亚洲欧美日韩中文在线制服| 精品69视频一区二区三区| 欧美精品大片| 午夜在线精品偷拍| 亚洲国产成人午夜在线一区 | 久久久久成人精品| 国产一区二区三区精品欧美日韩一区二区三区 | 在线综合视频| 国产欧美日韩亚洲精品| 久久亚洲精品一区二区| 99国产精品久久久| 国产婷婷色一区二区三区在线| 免费视频一区| 亚洲综合999| 亚洲国产精品一区二区www| 国产精品高潮呻吟视频| 看片网站欧美日韩| 亚洲专区在线| 亚洲欧洲久久| 国产欧美一区二区精品忘忧草| 欧美成人一区二区三区片免费| 亚洲男人的天堂在线| 亚洲国产国产亚洲一二三| 国产精品男gay被猛男狂揉视频| 美女视频黄 久久| 亚洲一区综合| 91久久精品国产91久久性色tv| 国产精品日韩在线播放| 欧美成在线观看| 欧美在现视频| 一区二区三区.www| 亚洲国产精品黑人久久久| 国产欧美日韩在线视频| 欧美精品在欧美一区二区少妇| 久久精品官网| 亚洲欧美日韩精品久久奇米色影视| 91久久久久| 狠狠色噜噜狠狠狠狠色吗综合| 欧美午夜视频一区二区| 女同性一区二区三区人了人一 | 欧美色欧美亚洲另类七区| 另类春色校园亚洲| 欧美在线综合| 亚洲女性裸体视频| 亚洲另类春色国产| 亚洲电影下载| 国产主播一区二区| 国产精品丝袜xxxxxxx| 欧美日韩播放| 欧美大片第1页| 久久久精品一区二区三区| 午夜免费电影一区在线观看| 正在播放欧美视频| 国产精品专区h在线观看| 欧美日韩一区二区三区在线| 欧美va天堂在线| 久热精品视频| 久久精品首页| 国产午夜精品久久久| 欧美黄色一区二区| 久久综合九色综合久99| 久久国产一区二区三区| 欧美一级夜夜爽| 性欧美暴力猛交69hd| 亚洲午夜久久久久久久久电影院 | 久久综合色影院| 久久精品视频免费观看| 欧美在线观看视频在线 | 国产美女扒开尿口久久久| 欧美理论大片| 免费视频久久| 久久久久久国产精品mv| 午夜激情综合网| 亚洲一级黄色| 一区二区三区 在线观看视| 亚洲另类在线视频| 亚洲国产成人高清精品| 国产真实久久| 欧美日韩精品欧美日韩精品| 欧美国产三区| 欧美a级片网| 麻豆国产va免费精品高清在线| 欧美一区二区三区日韩视频| 亚洲午夜在线视频| 一区电影在线观看| av成人黄色| 在线一区二区三区四区| 日韩视频一区二区三区| 亚洲精品国产精品国自产在线| 亚洲第一中文字幕| 亚洲激情一区| 亚洲日本国产| 亚洲欧洲视频在线| 亚洲巨乳在线| 在线综合欧美| 亚洲午夜激情网页| 亚洲午夜在线观看视频在线| 亚洲网站在线看|