成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL查詢優化器的工作原理

數據庫 MySQL
MySQL如何提高查詢效率是每一個DBA都經常要思考的問題,而查詢優化器正是幫助我們解決此問題的有力武器。

MySQL查詢優化器可以讓我們的MySQL數據庫查詢效率更高,下面就為您分析MySQL查詢優化器的工作原理,供您參考學習之用。

當你提交一個查詢的時候,MySQL會分析它,看是否可以做一些優化使處理該查詢的速度更快。這一部分將介紹查詢優化器是如何工作的。如果你想知道MySQL采用的優化手段,可以查看MySQL參考手冊。

當然,MySQL查詢優化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查詢,那么無論數據表有多大,MySQL執行它的速度都會非常快:

  1. SELECT * FROM tbl_name WHERE 0;  
  2.  

在這個例子中,MySQL查看WHERE子句,認識到沒有符合查詢條件的數據行,因此根本就不考慮搜索數據表。你可以通過提供一個EXPLAIN語句看到這種情況,這個語句讓MySQL顯示自己執行的但實際上沒有真正地執行的SELECT查詢的一些信息。如果要使用EXPLAIN,只需要在EXPLAIN單詞放在SELECT語句的前面:

  1. mysql> EXPLAIN SELECT * FROM tbl_name WHERE 0\G  
  2. *************************** 1. row ***************************  
  3. id: 1  
  4. select_type: SIMPLE  
  5. table: NULL  
  6. type: NULL  
  7. possible_keys: NULL  
  8. key: NULL  
  9. key_len: NULL  
  10. ref: NULL  
  11. rows: NULL  
  12. Extra: Impossible WHERE   
  13.  

通常情況下,EXPLAIN返回的信息比上面的信息要多一些,還包括用于掃描數據表的索引、使用的聯結類型、每張數據表中估計需要檢查的數據行數量等非空(NULL)信息。

MySQL查詢優化器是如何工作的

MySQL查詢優化器有幾個目標,但是其中最主要的目標是盡可能地使用索引,并且使用最嚴格的索引來消除盡可能多的數據行。你的最終目標是提交SELECT語句查找數據行,而不是排除數據行。優化器試圖排除數據行的原因在于它排除數據行的速度越快,那么找到與條件匹配的數據行也就越快。如果能夠首先進行最嚴格的測試,查詢就可以執行地更快。假設你的查詢檢驗了兩個數據列,每個列上都有索引:

  1. SELECT col3 FROM mytable  
  2. WHERE col1 = ’some value’ AND col2 = ’some other value’;   

假設col1上的測試匹配了900個數據行,col2上的測試匹配了300個數據行,而同時進行的測試只得到了30個數據行。先測試Col1會有900個數據行,需要檢查它們找到其中的30個與col2中的值匹配記錄,其中就有870次是失敗了。先測試col2會有300個數據行,需要檢查它們找到其中的30個與col1中的值匹配的記錄,只有270次是失敗的,因此需要的計算和磁盤I/O更少。其結果是,優化器會先測試col2,因為這樣做開銷更小。

你可以通過下面一個指導幫助優化器更好地利用索引:

盡量比較數據類型相同的數據列。當你在比較操作中使用索引數據列的時候,請使用數據類型相同的列。相同的數據類型比不同類型的性能要高一些。例如,INT與BIGINT是不同的。CHAR(10)被認為是CHAR(10)或VARCHAR(10),但是與CHAR(12)或VARCHAR(12)不同。如果你所比較的數據列的類型不同,那么可以使用ALTER TABLE來修改其中一個,使它們的類型相匹配。
 

 

【編輯推薦】

MySQL無重復查詢的實現

MySQL中SELECT命令的特殊用法

mysql命令行參數簡介

MySQL條件查詢語句的用法

使用Limit參數實現MySQL查詢優化

 

責任編輯:段燃 來源: 互聯網
相關推薦

2010-06-12 15:31:04

MySQL查詢優化

2019-05-17 11:53:58

MySQLorder by數據庫

2010-11-25 14:21:16

MySQL查詢分頁

2016-12-13 22:51:08

androidmultidex

2009-09-16 18:02:13

WSUS服務器

2010-10-14 16:27:56

MySQL隨機查詢

2010-10-27 14:57:24

Oracle查詢

2018-06-07 08:54:01

MySQL性能優化索引

2013-12-19 14:04:18

MySQLMySQL優化

2018-05-23 13:47:28

數據庫PostgreSQL查詢優化

2025-01-15 12:48:30

2018-05-25 15:04:57

數據庫PostgreSQL查詢優化器

2021-06-03 19:55:55

MySQ查詢優化

2025-05-20 08:05:00

分頁查詢MySQL索引

2024-02-29 09:28:19

2009-09-24 10:41:35

打印服務器

2024-02-20 14:53:01

2009-11-13 17:19:10

2011-04-07 15:32:25

2010-09-25 13:25:55

DHCP服務器工作原理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠操电影 | 夜夜骚视频 | 久久99国产精品久久99果冻传媒 | 国产一区不卡 | 欧美一区二区三区视频在线观看 | 欧美精品1区2区 | 亚洲一区中文字幕 | 精品综合久久 | 欧美无乱码久久久免费午夜一区 | 亚洲天堂中文字幕 | 蜜桃一区二区三区 | 激情91| 国产精品不卡一区 | 欧美在线激情 | 国产精品亚洲成在人线 | 亚洲第1页| 欧美色综合 | 国产成人一区二区三区 | 一区二区三区视频在线观看 | 国产精品99久久久久久动医院 | 99精品视频免费在线观看 | 国产精品久久精品 | 中文字幕不卡在线88 | 中文字幕亚洲一区 | 中文字幕1区2区 | 国产日韩欧美 | 97人澡人人添人人爽欧美 | 久久久亚洲成人 | 97视频在线观看免费 | 日本精品一区二区三区在线观看视频 | 午夜欧美 | 妞干网福利视频 | 日本网站免费观看 | 精品在线一区 | 国产精品久久二区 | 91精品国产91久久综合桃花 | 黑人精品欧美一区二区蜜桃 | 黄色欧美在线 | 亚洲视频www| 国产精品美女久久久久久久网站 | 成人午夜视频在线观看 |