佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 圖文詳解MySQL中兩表關(guān)聯(lián)的連接表如何創(chuàng)建索引

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

熱門標(biāo)簽:AI電銷 服務(wù)外包 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) Linux服務(wù)器 百度競價(jià)排名 呼叫中心市場需求 地方門戶網(wǎng)站

本文介紹了MySQL中兩表關(guān)聯(lián)的連接表是如何創(chuàng)建索引的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來看看詳細(xì)的介紹:

問題介紹

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

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


表間關(guān)系

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

針對(duì)該表,有如下四種選擇:

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

對(duì)關(guān)聯(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";

測試驗(yàn)證

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

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


1.2 單索引 Idx_dept


1.3 單索引 Idx_user


1.4 組合索引 Idx_dept_user


1.5 組合索引 Idx_user_dept


1.6 所有都建立上


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

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

2.2 單索引 Idx_dept


2.3 單索引 Idx_user

2.4 組合索引 Idx_dept_user


2.5 組合索引 Idx_user_dept


2.6 所有都建立上


三 、部門查人員用and方式

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

3.2 單索引 Idx_dept


3.3 單索引 Idx_user


3.4 組合索引 Idx_dept_user


3.5 組合索引 Idx_user_dept


3.6 所有都建立上


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

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


4.2 單索引 Idx_dept


4.3 單索引 Idx_user

4.4 組合索引 Idx_dept_user


4.5 組合索引 Idx_user_dept


4.6 所有都建立上

結(jié)論

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

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

其它

測試數(shù)據(jù)

Test.sql

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • MySQL 索引的優(yōu)缺點(diǎn)以及創(chuàng)建索引的準(zhǔn)則
  • MySQL字符串索引更合理的創(chuàng)建規(guī)則討論
  • MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹
  • 怎樣正確創(chuàng)建MySQL索引的方法詳解
  • MySQL創(chuàng)建全文索引分享
  • 詳解mysql索引總結(jié)----mysql索引類型以及創(chuàng)建
  • MySQL查看、創(chuàng)建和刪除索引的方法
  • mysql 添加索引 mysql 如何創(chuàng)建索引
  • MySQL創(chuàng)建索引需要了解的

標(biāo)簽:衡水 湘潭 銅川 湖南 黃山 崇左 蘭州 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《圖文詳解MySQL中兩表關(guān)聯(lián)的連接表如何創(chuàng)建索引》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    庄浪县| 宾阳县| 揭阳市| 阳江市| 昌邑市| 南和县| 汪清县| 马尔康县| 双流县| 上蔡县| 米林县| 泊头市| 漯河市| 历史| 伊川县| 红桥区| 迁安市| 逊克县| 桓台县| 镇平县| 达拉特旗| 昭苏县| 长垣县| 临江市| 大庆市| 渑池县| 平凉市| 乌恰县| 定结县| 永新县| 绩溪县| 珠海市| 探索| 翁牛特旗| 漳州市| 嵊泗县| 阜新| 无棣县| 桦川县| 沙洋县| 晋州市|