數據庫創建索引的方式「如何創建數據庫表格和索引」

概述

今天主要介紹一下MySQL中兩表關聯的連接表是如何創建索引的相關內容,下面來看看詳細的介紹。

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

MySQL兩表關聯的連接表創建索引

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

假設用戶表(user)與部門表(dept)通過部門用戶關聯表(deptuser)連接起來,如下圖所示:

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

表間關係

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

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

  • 針對於user_uuid建立單列索引idx_user
  • 針對於user_dept建立單列索引idx_dept
  • 建立組合索引idx_user_dept,即(user_uuid,dept_uuid)
  • 建立組合索引idx_dept_user,即(dept_uuid,user_uuid)
圖文詳解MySQL中兩表關聯的連接表應該如何創建索引

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

1、人員查所屬部門用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″;

2、人員查所屬部門用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″;

3、部門查人員用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″;

4、部門查所屬人員用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″;


01

人員查所屬部門用and方式

1.1 關聯表無索引

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

1.2 單索引 Idx_dept

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

1.3 單索引 Idx_user

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

1.4 組合索引 Idx_dept_user

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

1.5 組合索引 Idx_user_dept

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

1.6 所有都建立上

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

02

人員查所屬部門用join方式

2.1 關聯表無索引

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

2.2 單索引 Idx_dept

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

2.3 單索引 Idx_user

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

2.4 組合索引 Idx_dept_user

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

2.5 組合索引 Idx_user_dept

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

2.6 所有都建立上

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

03

部門查人員用and方式

3.1 關聯表無索引

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

3.2 單索引 Idx_dept

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

3.3 單索引 Idx_user

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

3.4 組合索引 Idx_dept_user

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

3.5 組合索引 Idx_user_dept

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

3.6 所有都建立上

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

04

部門查所屬人員用join方式

4.1 關聯表無索引

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

4.2 單索引 Idx_dept

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

4.3 單索引 Idx_user

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

4.4 組合索引 Idx_dept_user

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

4.5 組合索引 Idx_user_dept

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

4.6 所有都建立上

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

總結

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

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

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

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/276336.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-19 13:21
下一篇 2024-12-19 13:21

相關推薦

發表回復

登錄後才能評論