程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 圖文詳解MySQL中兩表關聯的連接表如何創建索引

圖文詳解MySQL中兩表關聯的連接表如何創建索引

編輯:MySQL綜合教程

圖文詳解MySQL中兩表關聯的連接表如何創建索引。本站提示廣大學習愛好者:(圖文詳解MySQL中兩表關聯的連接表如何創建索引)文章只能為提供參考,不一定能成為您想要的結果。以下是圖文詳解MySQL中兩表關聯的連接表如何創建索引正文


圖文詳解MySQL中兩表關聯的連接表如何創建索引

作者:YiYing

這篇文章通過圖文給大家介紹了關於MySQL中兩表關聯的連接表如何創建索引的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

本文介紹了MySQL中兩表關聯的連接表是如何創建索引的相關內容,分享出來供大家參考學習,下面來看看詳細的介紹:

問題介紹

創建數據庫的索引,可以選擇單列索引,也可以選擇創建組合索引。

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


表間關系

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

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

針對於user_uuid建立單列索引idx_user 針對於user_dept建立單列索引idx_dept 建立組合索引idx_user_dept,即(user_uuid,dept_uuid) 建立組合索引idx_dept_user,即(dept_uuid,user_uuid)

對關聯表的查詢,有如下四種情況:

-- 一、人員查所屬部門用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 關聯表無索引


1.2 單索引 Idx_dept


1.3 單索引 Idx_user


1.4 組合索引 Idx_dept_user


1.5 組合索引 Idx_user_dept


1.6 所有都建立上


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

2.1 關聯表無索引

2.2 單索引 Idx_dept


2.3 單索引 Idx_user

2.4 組合索引 Idx_dept_user


2.5 組合索引 Idx_user_dept


2.6 所有都建立上


三 、部門查人員用and方式

3.1 關聯表無索引

3.2 單索引 Idx_dept


3.3 單索引 Idx_user


3.4 組合索引 Idx_dept_user


3.5 組合索引 Idx_user_dept


3.6 所有都建立上


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

4.1 關聯表無索引


4.2 單索引 Idx_dept


4.3 單索引 Idx_user

4.4 組合索引 Idx_dept_user


4.5 組合索引 Idx_user_dept


4.6 所有都建立上

結論

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

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

其它

測試數據

Test.sql

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved