新聞中心
以下的文章主要是對(duì)MySQL聯(lián)表查詢優(yōu)化,LEFT JOIN 和 RIGHT JOIN實(shí)際操作的介紹,如果你對(duì)其有興趣的話你就可以點(diǎn)擊以下的文章進(jìn)行觀看了,希望會(huì)給你帶來(lái)一些幫助在此方面。
A LEFT JOIN B join_condition 在mysql中實(shí)現(xiàn)如下:

表 B 依賴于表 A 以及其依賴的所有表。
表 A 依賴于在 LEFT JOIN 條件中的所有表(除了 B)。
LEFT JOIN 條件用于決定如何從表 B 中讀取記錄了(換句話說(shuō),WHERE 子句中的任何條件都對(duì)此不起作用)。
所有標(biāo)準(zhǔn)的連接MySQL聯(lián)表查詢優(yōu)化都會(huì)執(zhí)行,例外的情況是有一個(gè)表總是在它依賴的所有表之后被讀取。如果這是一個(gè)循環(huán)的依賴關(guān)系,那么MySQL會(huì)認(rèn)為這是錯(cuò)誤的。
所有的標(biāo)準(zhǔn) WHERE 優(yōu)化都會(huì)執(zhí)行。
如果 A 中有一條記錄匹配了 WHERE 子句,但是 B 中沒(méi)有任何記錄匹配 ON 條件,那么就會(huì)產(chǎn)生一條 B 記錄,它的字段值全都被置為 NULL。
如果使用 LEFT JOIN 來(lái)搜索在一些表中不存在的記錄,并且 WHERE 部分中有檢測(cè)條件:col_name IS NULL,col_name 字段定義成 NOT NULL 的話,MySQL就會(huì)在找到一條匹配 LEFT JOIN 條件的記錄(用于和特定的索引鍵做聯(lián)合)后停止搜索了。
RIGHT JOIN 的實(shí)現(xiàn)和 LEFT JOIN 類似,不過(guò)表的角色倒過(guò)來(lái)了。
連接MySQL聯(lián)表查詢優(yōu)化程序計(jì)算了表連接的次序。表讀取的順序是由 LEFT JOIN 強(qiáng)行指定的,而且使用 STRAIGHT_JOIN 能幫助連接優(yōu)化程序更快地執(zhí)行,因?yàn)檫@就會(huì)有更少的表排隊(duì)檢查了。注意,這里是指如果你執(zhí)行下面這種類型的查詢后,MySQL就會(huì)對(duì) b 做一次全表掃描,因?yàn)?LEFT JOIN 強(qiáng)制要求了必須在讀 d 之前這么做:
- SELECT *
- FROM a,b LEFT JOIN c ON (c.key=a.key) LEFT JOIN d ON (d.key=a.key)
- WHERE b.key=d.key;
解決這種情況的方法是按照如下方式重寫(xiě)查詢:
- SELECT *
- FROM b,a LEFT JOIN c ON (c.key=a.key) LEFT JOIN d ON (d.key=a.key)
- WHERE b.key=d.key;
從4.0.14開(kāi)始,MySQL做如下 LEFT JOIN 優(yōu)化:如果對(duì)產(chǎn)生的 NULL 記錄 WHERE 條件總是 假,那么 LEFT JOIN 就會(huì)變成一個(gè)普通的連接。
例如,下面的查詢中如果 t2.column1 的值是 NULL 的話,WHERE 子句的結(jié)果就是假了:
- SELECT * FROM t1 LEFT JOIN t2 ON (column1) WHERE t2.column2=5;
因此,這就可以安全的轉(zhuǎn)換成一個(gè)普通的連接查詢:
- SELECT * FROM t1,t2 WHERE t2.column2=5 AND t1.column1=t2.column1;
這查詢起來(lái)就更快了,因?yàn)槿绻苡幸粋€(gè)更好的查詢計(jì)劃的話,mysql就會(huì)在 t1 之前就用到 t2 了。想要強(qiáng)行指定表順序的話,可以使用 STRAIGHT_JOIN。以上的相關(guān)內(nèi)容就是對(duì)MySQL聯(lián)表查詢優(yōu)化:LEFT JOIN 與 RIGHT JOIN的介紹,望你能有所收獲。
【編輯推薦】
- MySQL數(shù)據(jù)庫(kù)訪問(wèn)妙招在Linux之下
- MySQL 修改密碼的6個(gè)好用方案
- 配置MySQL與卸載MySQL實(shí)操
- 讓MySQL支持中文的實(shí)際操作步驟
- MySQL 4.1 數(shù)據(jù)轉(zhuǎn)換的指導(dǎo)
新聞名稱:MySQL聯(lián)表查詢優(yōu)化實(shí)際操作流程
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/djcihip.html


咨詢
建站咨詢
