亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL優化全攻略--相關數據庫命令

2019-09-08 23:26:57
字體:
來源:轉載
供稿:網友
▲ SHOW
  
執行下面這個命令可以了解服務器的運行狀態:
  
以下為引用的內容:

  mysql >show status;

 
        該命令將顯示出一長列狀態變量及其對應的值,其中包括:被中止訪問的用戶數量,被中止的連接數量,嘗試連接的次數,并發連接數量最大值,以及其他許多有用的信息。這些信息對于確定系統問題和效率低下的原因是十分有用的。
  
SHOW命令除了能夠顯示出MySQL服務器整體狀態信息之外,它還能夠顯示出有關日志文件、指定數據庫、表、索引、進程和許可權限表的寶貴信息。請訪問http://www.mysql.com/doc/S/H/SHOW.html了解更多信息。
  
  ▲ EXPLAIN
  
         EXPLAIN能夠分析SELECT命令的處理過程。這不僅對于決定是否要為表加上索引很有用,而且對于了解MySQL處理復雜連接的過程也很有用。
  
         下面這個例子顯示了如何用EXPLAIN提供的信息逐步地優化連接查詢。(本例來自MySQL文檔,見http://www.mysql.com/doc/E/X/EXPLAIN.html。原文寫到這里似乎有點潦草了事,特加上此例。)
  
  假定用EXPLAIN分析的SELECT命令如下所示:
  
以下為引用的內容:

  EXPLAIN SELECT tt.TicketNumber, tt.TimeIn,
  tt.ProjectReference, tt.EstimatedShipDate,
  tt.ActualShipDate, tt.ClientID,
  tt.ServiceCodes, tt.RepetitiveID,
  tt.CurrentProcess, tt.CurrentDPPerson,
  tt.RecordVolume, tt.DPPrinted, et.COUNTRY,
  et_1.COUNTRY, do.CUSTNAME
  FROM tt, et, et AS et_1, do
  WHERE tt.SubmitTime IS NULL
  AND tt.ActualPC = et.EMPLOYID
  AND tt.AssignedPC = et_1.EMPLOYID
  AND tt.ClientID = do.CUSTNMBR;
  
  SELECT命令中出現的表定義如下:
  
  ※表定義
  
  表 列 列類型
  tt ActualPC CHAR(10)
  tt AssignedPC CHAR(10)
  tt ClientID CHAR(10)
  et EMPLOYID CHAR(15)
  do CUSTNMBR CHAR(15)
  
  ※索引
  
  表 索引
  tt ActualPC
  tt AssignedPC
  tt ClientID
  et EMPLOYID (主鍵)
  do CUSTNMBR (主鍵)
  
  ※tt.ActualPC值分布不均勻
  
  在進行任何優化之前,EXPLAIN對SELECT執行分析的結果如下:
  
  table type possible_keys    key key_len ref rows Extra
  et ALL PRIMARY      NULL NULL NULL 74
  do ALL PRIMARY      NULL NULL NULL 2135
  et_1 ALL PRIMARY      NULL NULL NULL 74
  tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872
  range checked for each record (key map: 35)

  
  每一個表的type都是ALL,它表明MySQL為每一個表進行了完全連接!這個操作是相當耗時的,因為待處理行的數量達到每一個表行數的乘積!即,這里的總處理行數為74 * 2135 * 74 * 3872 = 45,268,558,720。
  
  這里的問題之一在于,如果數據庫列的聲明不同,MySQL(還)不能有效地運用列的索引。在這個問題上,VARCHAR和CHAR是一樣的,除非它們聲明的長度不同。由于tt.ActualPC聲明為CHAR(10),而et.EMPLOYID聲明為CHAR(15),因此這里存在列長度不匹配問題。
  
  為了解決這兩個列的長度不匹配問題,用ALTER TABLE命令把ActualPC列從10個字符擴展到15字符,如下所示:
  
以下為引用的內容:

  mysql > ALTER TABLE tt MODIFY ActualPC VARCHAR(15);
  
  現在tt.ActualPC和et.EMPLOYID都是VARCHAR(15)了,執行EXPLAIN進行分析得到的結果如下所示:
  
  table type possible_keys key  key_len ref   rows Extra
  tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872 where used
  do ALL PRIMARY   NULL NULL NULL  2135
  range checked for each record (key map: 1)
  et_1 ALL PRIMARY   NULL NULL NULL  74
  range checked for each record (key map: 1)
  
  et eq_ref PRIMARY   PRIMARY 15  tt.ActualPC 1
  
  這還算不上完美,但已經好多了(行數的乘積現在少了一個系數74)?,F在這個SQL命令執行大概需要數秒鐘時間。
  
  為了避免tt.AssignedPC = et_1.EMPLOYID以及tt.ClientID = do.CUSTNMBR比較中的列長度不匹配,我們可以進行如下改動:
  
  mysql > ALTER TABLE tt MODIFY AssignedPC VARCHAR(15),
  MODIFY ClientID VARCHAR(15);


  現在EXPLAIN顯示的結果如下:
  
以下為引用的內容:

  table type possible_keys key  key_len ref   rows  Extra
  et ALL PRIMARY   NULL NULL NULL   74
  tt ref AssignedPC,ClientID,ActualPC ActualPC 15 et.EMPLOYID 52 where used
  et_1 eq_ref PRIMARY   PRIMARY 15  tt.AssignedPC 1
  do eq_ref PRIMARY   PRIMARY 15  tt.ClientID 1

 
  這個結果已經比較令人滿意了。

  余下的問題在于,默認情況下,MySQL假定tt.ActualPC列的值均勻分布,而事實上tt表的情況并非如此。幸而,我們可以很容易地讓MySQL知道這一點:
  
  shell > myisamchk --analyze PATH_TO_MYSQL_DATABASE/tt
  shell > mysqladmin refresh
  
  現在這個連接操作已經非常理想,EXPLAIN分析的結果如下:
  

以下為引用的內容:

  table type possible_keys key  key_len ref   rows Extra
  tt ALL AssignedPC,ClientID,ActualPC NULL NULL NULL 3872 where used
  et eq_ref PRIMARY   PRIMARY 15  tt.ActualPC 1
  et_1 eq_ref PRIMARY   PRIMARY 15  tt.AssignedPC 1
  do eq_ref PRIMARY   PRIMARY 15  tt.ClientID 1
  
  ▲ OPTIMIZE


  
  OPTIMIZE能夠恢復和整理磁盤空間以及數據碎片,一旦對包含變長行的表進行了大量的更新或者刪除,進行這個操作就非常有必要了。OPTIMIZE當前只能用于MyISAM和BDB表。
  
  結束語:
  
  從編譯數據庫服務器開始、貫穿整個管理過程,能夠改善MySQL性能的因素實在非常多,本文只涉及了其中很小的一部分。

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲aⅴ男人的天堂在线观看| 亚洲第一福利网| 国产精品久久久久久久久借妻| 欧美电影电视剧在线观看| 久久亚洲影音av资源网| 中文字幕欧美日韩精品| 亚洲最大福利视频| 亚洲亚裔videos黑人hd| 亚洲综合社区网| 国产精品香蕉av| 亚洲天堂免费在线| 韩国三级电影久久久久久| 日韩中文字幕av| 国产精品久久久久影院日本| 成人黄色午夜影院| 国产99视频精品免视看7| 丝袜情趣国产精品| 国产一区二中文字幕在线看| 国产精品丝袜视频| 97高清免费视频| 日韩精品视频免费| 久久免费视频在线观看| 欧美丝袜美女中出在线| 亚洲精品乱码久久久久久按摩观| 欧美成人激情视频免费观看| 欧美在线观看一区二区三区| xxxxx成人.com| 日韩av在线看| 精品中文字幕视频| xvideos亚洲| 伦伦影院午夜日韩欧美限制| 最近2019好看的中文字幕免费| 91大神在线播放精品| 日韩中文av在线| 91精品视频网站| 精品国产鲁一鲁一区二区张丽| 国产成人精品久久| 成人淫片在线看| 欧美午夜女人视频在线| 岛国av在线不卡| 国产精品中文字幕在线观看| 奇门遁甲1982国语版免费观看高清| 91亚洲精品在线观看| 国产精品a久久久久久| 国产精品丝袜久久久久久不卡| 国产亚洲精品久久久优势| 亚洲剧情一区二区| 国产成人亚洲综合91| 午夜精品一区二区三区在线视频| 欧美孕妇孕交黑巨大网站| 91视频-88av| 亚洲黄色av女优在线观看| 精品一区二区电影| 亚洲精品午夜精品| 最新日韩中文字幕| 亚洲美女性视频| 亚洲激情视频在线观看| 日本精品久久久| 久久艳片www.17c.com| 国内精品在线一区| 欧美成年人在线观看| 亚洲黄页网在线观看| 国产精品日韩精品| 欧美在线视频网站| 日韩大陆欧美高清视频区| 精品久久中文字幕久久av| 亚洲一区二区久久久久久| 亚洲精美色品网站| 欧美裸体xxxxx| 国产精品爱久久久久久久| 6080yy精品一区二区三区| 亚洲第一精品电影| 日韩最新av在线| 日韩国产欧美精品在线| 成人在线视频福利| 久久久久久国产| 高跟丝袜欧美一区| 久久久免费观看| 国产中文日韩欧美| 日韩av在线天堂网| 免费不卡在线观看av| 日本午夜人人精品| 中文在线资源观看视频网站免费不卡| 中文字幕国内精品| 亚洲国产天堂久久综合网| 日韩在线播放av| 亚洲欧美日韩直播| 日本精品中文字幕| 日韩精品视频在线免费观看| 国产女同一区二区| 日韩欧美在线播放| 亚洲精品v天堂中文字幕| www.国产一区| 欧美精品在线播放| 国产精品中文字幕在线| 久久久久一本一区二区青青蜜月| 亚洲成人久久久久| 亚洲黄色在线观看| 亚洲精品欧美极品| 久久久久久久网站| 色综合久久天天综线观看| 日韩视频免费在线观看| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久久久99| 亚洲最大福利视频网站| 另类少妇人与禽zozz0性伦| 国产在线视频欧美| 欧美视频在线观看免费| 88xx成人精品| 奇米影视亚洲狠狠色| 亚洲区一区二区| 国产99久久精品一区二区永久免费| 亚洲一区二区三区在线免费观看| 日韩欧美在线一区| 国产精品嫩草视频| 日韩精品在线免费播放| 欧美午夜激情视频| 亚洲国产精品yw在线观看| 国产福利精品视频| 亚洲一区第一页| 国产91精品久久久| 亚洲激情久久久| 日韩小视频在线观看| 精品福利在线观看| 色婷婷久久一区二区| 亚洲第一页在线| 国产在线播放不卡| 国产成人aa精品一区在线播放| 欧美夜福利tv在线| 欧美极品少妇与黑人| 成人午夜在线影院| 中文字幕日韩精品在线观看| 国产69精品久久久| 国产成人精品综合久久久| 中文字幕久久亚洲| 久久99精品久久久久久琪琪| 国产成人精品最新| 91精品国产自产在线老师啪| 国产精品h在线观看| 精品久久久国产精品999| 亚洲一区精品电影| 精品亚洲精品福利线在观看| 欧美日韩在线另类| 久久成人综合视频| 欧美在线欧美在线| 日韩精品丝袜在线| 亚洲成人久久久久| 国产精品成久久久久三级| 欧美高清视频在线播放| 美女999久久久精品视频| 久久久亚洲欧洲日产国码aⅴ| 精品一区电影国产| 97在线视频免费| 91在线观看免费高清| 欧美肥臀大乳一区二区免费视频| 国产亚洲一区二区在线| 国产精品久久久亚洲| 国产精品尤物福利片在线观看| 欧美乱大交xxxxx| 国产成人精品久久久| 国产精品日本精品| 姬川优奈aav一区二区| 国产国产精品人在线视| 九九久久精品一区|