明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

MySQL中2表關聯(lián)的連接表怎么創(chuàng)建索引圖文詳細說明

[摘要]本文通過圖文給大家介紹了關于MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。問題介紹創(chuàng)建數(shù)據(jù)庫的索引,可以選擇單列...
本文通過圖文給大家介紹了關于MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

問題介紹

創(chuàng)建數(shù)據(jù)庫的索引,可以選擇單列索引,也可以選擇創(chuàng)建組合索引。

遇到如下這種情況,用戶表(user)與部門表(dept)通過部門用戶關聯(lián)表(deptuser)連接起來,如下圖所示:

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解
表間關系

問題就是,在這個關聯(lián)表中該如何建立索引呢?

針對該表,有如下四種選擇:

  • 針對于user_uuid建立單列索引idx_user

  • 針對于user_dept建立單列索引idx_dept

  • 建立組合索引idx_user_dept,即(user_uuid,dept_uuid)

  • 建立組合索引idx_dept_user,即(dept_uuid,user_uuid)

對關聯(lián)表的查詢,有如下四種情況:

-- 一、人員查所屬部門用and方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user duser WHERE u.user_uuid=duser.user_uuid AND d.dept_uuid=duser.dept_uuid AND u.user_code="dev1";
-- 二、人員查所屬部門用join方式
EXPLAIN SELECT d.dept_name,u.* FROM org_user u LEFT JOIN org_dept_user du ON u.user_uuid=du.user_uuid LEFT JOIN org_dept d ON du.dept_uuid=d.dept_uuid WHERE u.user_code="dev1";
-- 三、部門查人員用and方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user du WHERE u.user_uuid=du.user_uuid AND d.dept_uuid=du.dept_uuid AND d.dept_code="D006";
-- 四、部門查所屬人員用join方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d LEFT JOIN org_dept_user du ON d.dept_uuid=du.dept_uuid LEFT JOIN org_user u ON u.user_uuid=du.user_uuid WHERE d.dept_code="D006";

測試驗證

一.人員查所屬部門用and方式

1.1 關聯(lián)表無索引

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

1.2 單索引 Idx_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

1.3 單索引 Idx_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

1.4 組合索引 Idx_dept_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

1.5 組合索引 Idx_user_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

1.6 所有都建立上

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

二 、人員查所屬部門用join方式

2.1 關聯(lián)表無索引

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

2.2 單索引 Idx_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

2.3 單索引 Idx_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

2.4 組合索引 Idx_dept_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

2.5 組合索引 Idx_user_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

2.6 所有都建立上

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

三 、部門查人員用and方式

3.1 關聯(lián)表無索引

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

3.2 單索引 Idx_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

3.3 單索引 Idx_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

3.4 組合索引 Idx_dept_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

3.5 組合索引 Idx_user_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

3.6 所有都建立上

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

四 、部門查所屬人員用join方式

4.1 關聯(lián)表無索引

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

4.2 單索引 Idx_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

4.3 單索引 Idx_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

4.4 組合索引 Idx_dept_user

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

4.5 組合索引 Idx_user_dept

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

4.6 所有都建立上

MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解

結論

通過上面的實際測試結果可以得出如下結論:針對于該關聯(lián)表分別針對于user_uuid與dept_uuid建立單列索引idx_user,idx_dept最優(yōu)。

其中索引idx_user適用與通過人員ID查詢出該人員所在的部門;索引idx_dept適用與通過部門查詢出該部門下所屬的人員。

相關推薦:

分析一下聚合函數(shù)與連接表的組合使用_MySQL

mysql實現(xiàn)兩表關聯(lián)更新_MySQL、

MySQL中表分區(qū)的詳細介紹

以上就是MySQL中兩表關聯(lián)的連接表如何創(chuàng)建索引圖文詳解的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。