自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數(shù)據(jù)庫中的join的實際應用演示

數(shù)據(jù)庫 MySQL
以下的文章主要向大家講述的是MySQL數(shù)據(jù)庫中的join的實際應用以及對其實際應用代碼的描述,以下就是文章的詳細內(nèi)容描述。

此文章主要向大家描述的是MySQL數(shù)據(jù)庫中的join的實際應用,我們大家都知道MySQL數(shù)據(jù)庫的join只有一種,及nested loop。對于在被連接的數(shù)據(jù)子集處于較小的情況下,nested loop連接是個較好的選擇。

nested loop就是掃描一個表,每讀到一條記錄,就根據(jù)索引去另一個表里面查找,沒有索引一般就不會是 nested loops。

一般在nested loop中, 驅(qū)動表滿足條件結(jié)果集不大,被驅(qū)動表的連接字段要有索引,這樣就走nstedloop。如果驅(qū)動表返回記錄太多,就不適合nested loops了。如果連接字段沒有索引,則適合走hash join,因為不需要索引。

這段說的是oracle下nestedloop。在MySQL中,只有nestedloop。

nested loop的過程:選擇row resource 最小的那個表作為驅(qū)動表(外部表),內(nèi)部表要求有選擇性高的index。 從外部表(驅(qū)動表)里一次取一行對內(nèi)部表的每行進行比較,即外部表有幾個distinct行,就有幾次nested loop。

所以nested loop的代價是:

  1. cost = outer access cost + (inner access cost * outer cardinality) 

outer access cost應該是讀取驅(qū)動表到內(nèi)存,而內(nèi)部表要求有有效的index也是為了降低inner access cost,而驅(qū)動表要求小,也就很好理解了。

個人觀點:當被驅(qū)動表的連接字段并沒有建立索引時,用小結(jié)果集來驅(qū)動大結(jié)果集和用大結(jié)果集來驅(qū)動小結(jié)果集效果應該是一樣的,都需要全表掃,無非就是m*n和n*m的關(guān)系

簡朝陽在他的書中也有這么一段話:永遠用小結(jié)果集驅(qū)動大結(jié)果集……此優(yōu)化的前提條件是 通過join條件每次對各個表進行訪問的資源消耗差別不是太大。

如果資源消耗有較大的差別(一般都是因為索引的區(qū)別),就不能簡單的通過結(jié)果集的大小來判斷join語句的驅(qū)動順序,而是要通過比較循環(huán)次數(shù)和每次循環(huán)所須消耗之乘積大小來確定優(yōu)化方案了。

MySQL數(shù)據(jù)庫中的join

 

原文標題: MySQL的join 

連接:http://www.cnblogs.com/arlen/articles/1752456.html

以上的相關(guān)內(nèi)容就是對MySQL數(shù)據(jù)庫中的join 的介紹,望你能有所收獲。

【編輯推薦】

  1. ASP.NET連接MySQL數(shù)據(jù)庫的正確解決方案
  2. 啟動與關(guān)閉MySQL的一大絕招
  3. MySQL免安裝版-添加服務實操演示
  4. MySQL數(shù)據(jù)庫中的自動備份破壞后的建立
  5. mssql轉(zhuǎn)換為MySQL數(shù)據(jù)庫經(jīng)驗漫談

 

責任編輯:佚名 來源: MySQL
相關(guān)推薦

2010-06-12 09:53:19

2010-05-13 13:49:09

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

2010-04-19 09:26:04

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

2010-05-20 15:22:37

2010-05-28 11:41:46

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

2018-07-30 15:00:05

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

2010-05-25 18:21:28

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

2010-05-13 14:57:03

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

2010-05-12 18:41:34

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

2010-05-28 14:51:47

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

2010-05-31 14:59:36

PHP + MySQL

2010-05-18 17:24:44

MySQL修改表字段

2010-05-25 14:42:14

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

2010-04-01 13:09:12

Oracle中join

2010-04-21 11:27:55

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

2010-03-30 11:15:26

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

2010-06-17 10:02:12

SQL Server數(shù)

2010-04-13 12:23:34

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

2010-04-09 16:26:53

Oracle join

2010-05-25 08:49:33

連接MySQL
點贊
收藏

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