偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL查詢優(yōu)化系列之MySQL查詢優(yōu)化器

數(shù)據(jù)庫 MySQL
我們今天主要和大家一起分享的是MySQL查詢優(yōu)化系列之MySQL查詢優(yōu)化器以及對其實(shí)際應(yīng)用代碼的具體描述,望大家會有所收獲。

此文章主要向大家描述的是MySQL查詢優(yōu)化系列之MySQL查詢優(yōu)化器,當(dāng)你在對一查詢進(jìn)行提交的時候,MySQL數(shù)據(jù)庫會對它進(jìn)行分析,主要是看其是否可以用來做一些優(yōu)化使處理該查詢的速度更快。

這一部分將介紹查詢優(yōu)化器是如何工作的。如果你想知道MySQL(和PHP搭配之***組合)采用的優(yōu)化手段,可以查看MySQL(和PHP搭配之***組合)參考手冊。

當(dāng)然,MySQL(和PHP搭配之***組合)查詢優(yōu)化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查詢,那么無論數(shù)據(jù)表有多大,MySQL(和PHP搭配之***組合)執(zhí)行它的速度都會非??欤?/p>

 

  1. SELECT * FROM tbl_name WHERE 0; 

在這個例子中,MySQL(和PHP搭配之***組合)查看WHERE子句,認(rèn)識到?jīng)]有符合查詢條件的數(shù)據(jù)行,因此根本就不考慮搜索數(shù)據(jù)表。你可以通過提供一個EXPLAIN語句看到這種情況,這個語句讓MySQL(和PHP搭配之***組合)顯示自己執(zhí)行的但實(shí)際上沒有真正地執(zhí)行的SELECT查詢的一些信息。如果要使用EXPLAIN,只需要在EXPLAIN單詞放在SELECT語句的前面:

  1. MySQL(和PHP搭配之***組合)> EXPLAIN SELECT * FROM tbl_name WHERE 0\G  
  2. id: 1  
  3. select_type: SIMPLE  
  4. table: NULL  
  5. type: NULL  
  6. possible_keys: NULL  
  7. key: NULL  
  8. key_len: NULL  
  9. ref: NULL  
  10. rows: NULL  
  11. Extra: Impossible WHERE  
  12.  

 

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

優(yōu)化器是如何工作的

MySQL(和PHP搭配之***組合)查詢優(yōu)化器有幾個目標(biāo),但是其中最主要的目標(biāo)是盡可能地使用索引,并且使用最嚴(yán)格的索引來消除盡可能多的數(shù)據(jù)行。你的最終目標(biāo)是提交SELECT語句查找數(shù)據(jù)行,而不是排除數(shù)據(jù)行。

優(yōu)化器試圖排除數(shù)據(jù)行的原因在于它排除數(shù)據(jù)行的速度越快,那么找到與條件匹配的數(shù)據(jù)行也就越快。如果能夠首先進(jìn)行最嚴(yán)格的測試,查詢就可以執(zhí)行地更快。假設(shè)你的查詢檢驗(yàn)了兩個數(shù)據(jù)列,每個列上都有索引:

 

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

假設(shè)col1上的測試匹配了900個數(shù)據(jù)行,col2上的測試匹配了300個數(shù)據(jù)行,而同時進(jìn)行的測試只得到了30個數(shù)據(jù)行。先測試Col1會有900個數(shù)據(jù)行,需要檢查它們找到其中的30個與col2中的值匹配記錄,其中就有870次是失敗了。

先測試col2會有300個數(shù)據(jù)行,需要檢查它們找到其中的30個與col1中的值匹配的記錄,只有270次是失敗的,因此需要的計算和磁盤I/O更少。其結(jié)果是,優(yōu)化器會先測試col2,因?yàn)檫@樣做開銷更小。

以上的相關(guān)內(nèi)容就是對MySQL查詢優(yōu)化系列講座之查詢優(yōu)化器的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL AUTO_INCREMENT的正確用法
  2. MySQL數(shù)據(jù)庫在linux下遠(yuǎn)程的連接錯誤
  3. MySQL5中的字符集問題與破解方案
  4. MySQL數(shù)據(jù)庫與表的最基本命令大盤點(diǎn)
  5. MySQL全文搜索索引的字段作用
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-11-25 10:28:28

MySQL查詢優(yōu)化器

2018-06-07 08:54:01

MySQL性能優(yōu)化索引

2021-06-03 19:55:55

MySQ查詢優(yōu)化

2025-05-20 08:05:00

分頁查詢MySQL索引

2010-11-25 14:21:16

MySQL查詢分頁

2017-07-25 15:35:07

MysqlMysql優(yōu)化LIMIT分頁

2013-01-04 10:00:12

MySQL數(shù)據(jù)庫數(shù)據(jù)庫查詢優(yōu)化

2019-09-11 10:40:49

MySQL大分頁查詢數(shù)據(jù)庫

2010-10-14 16:27:56

MySQL隨機(jī)查詢

2015-07-17 16:23:14

MySQL優(yōu)化

2017-09-05 09:02:06

Oraclenot null優(yōu)化

2010-11-25 10:12:02

MySQL查詢優(yōu)化

2024-09-19 08:09:37

MySQL索引數(shù)據(jù)庫

2019-11-15 10:01:07

MySQL數(shù)據(jù)庫數(shù)據(jù)

2025-01-15 12:48:30

2018-05-23 13:47:28

數(shù)據(jù)庫PostgreSQL查詢優(yōu)化

2018-05-25 15:04:57

數(shù)據(jù)庫PostgreSQL查詢優(yōu)化器

2023-07-12 08:55:16

PawSQL數(shù)據(jù)庫

2011-03-11 15:53:02

LAMP優(yōu)化

2023-11-28 07:54:18

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號