php 两个表关联创建索引,Mysql入门图文详解MySQL中两表关联的连接表如何创建索引...

《Mysql入门图文详解MySQL中两表关联的连接表如何创建索引》要点:

本文介绍了Mysql入门图文详解MySQL中两表关联的连接表如何创建索引,希望对您有用。如果有疑问,可以联系我们。

MYSQL必读本文介绍了MySQL中两表关联的连接表是如何创建索引的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

MYSQL必读问题介绍

MYSQL必读创建数据库的索引,可以选择单列索引,也可以选择创建组合索引.

MYSQL必读遇到如下这种情况,用户表(user)与部门表(dept)通过部门用户关联表(deptuser)连接起来,如下图所示:

MYSQL必读

8fa27f280f531f40f48e18f11d2c3926.png

表间关系

MYSQL必读问题就是,在这个关联表中该如何建立索引呢?

MYSQL必读针对该表,有如下四种选择:

针对于user_uuid建立单列索引idx_user

针对于user_dept建立单列索引idx_dept

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

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

MYSQL必读对关联表的查询,有如下四种情况:

MYSQL必读

-- 一、人员查所属部门用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";

MYSQL必读测试验证

MYSQL必读一.人员查所属部门用and方式

MYSQL必读1.1 关联表无索引

MYSQL必读

ee91cfed7ca12aad7cc3db4c6c1cb862.png

MYSQL必读1.2 单索引 Idx_dept

MYSQL必读

857d45180d47fb33d01c903d52ee9528.png

MYSQL必读1.3 单索引 Idx_user

MYSQL必读

b841e82be6b6322c0fada7e4b0b8593c.png

MYSQL必读1.4 组合索引 Idx_dept_user

MYSQL必读

d5c6da5de381d2b8c929653966fc0b9f.png

MYSQL必读1.5 组合索引 Idx_user_dept

MYSQL必读

a59988174094ab2e24ba6ae827783a1e.png

MYSQL必读1.6 所有都建立上

MYSQL必读

ac0a33c4c1c3341fe3dc05390906315d.png

MYSQL必读二 、人员查所属部门用join方式

MYSQL必读2.1 关联表无索引

MYSQL必读

8ef137ecdedabf3e2dc4a69380e74d93.png

MYSQL必读2.2 单索引 Idx_dept

MYSQL必读

205ceed6f91984189b603df0bced6311.png

MYSQL必读2.3 单索引 Idx_user

MYSQL必读

36cdd8922473b7e438a6e86202cd11d9.png

MYSQL必读2.4 组合索引 Idx_dept_user

MYSQL必读

8e9f6da8897e821937ab21f7cfb266a2.png

MYSQL必读2.5 组合索引 Idx_user_dept

MYSQL必读

746e81cb32f1a3430b9ee52d7b078413.png

MYSQL必读2.6 所有都建立上

MYSQL必读

d8d249c8dc91d40bc7a3d29ce4449696.png

MYSQL必读三 、部门查人员用and方式

MYSQL必读3.1 关联表无索引

MYSQL必读

05665ac9c3b5bb6c04679ecdf0c618bc.png

MYSQL必读3.2 单索引 Idx_dept

MYSQL必读

1f7eb7d10ec8a9dd28ef7d217451d268.png

MYSQL必读3.3 单索引 Idx_user

MYSQL必读

191e0c1a2d5086923760480227478f6d.png

MYSQL必读3.4 组合索引 Idx_dept_user

MYSQL必读

6e738f64e06f4ea37d01204e24535860.png

MYSQL必读3.5 组合索引 Idx_user_dept

MYSQL必读

6ce064981ff12256860d129e94acf118.png

MYSQL必读3.6 所有都建立上

MYSQL必读

2999c38a3bf93a24a1c3668857c0f514.png

MYSQL必读四 、部门查所属人员用join方式

MYSQL必读4.1 关联表无索引

MYSQL必读

f9011139b54e4381e132d0cd9fe72da1.png

MYSQL必读4.2 单索引 Idx_dept

MYSQL必读

e79be880c674002bdeb15df2329593b6.png

MYSQL必读4.3 单索引 Idx_user

MYSQL必读

8411fb4fe75f34167fcbb7b0b78753bb.png

MYSQL必读4.4 组合索引 Idx_dept_user

MYSQL必读

ea6fe85cfa18aa9d9856687f1bec36e4.png

MYSQL必读4.5 组合索引 Idx_user_dept

MYSQL必读

15ce45f842e4327d49f5a6455c59fccc.png

MYSQL必读4.6 所有都建立上

MYSQL必读

67e62657591cb37bf92de38c2df4a9c5.png

MYSQL必读结论

MYSQL必读通过上面的实际测试结果可以得出如下结论:针对于该关联表分别针对于user_uuid与dept_uuid建立单列索引idx_user,idx_dept最优.

MYSQL必读其中索引idx_user适用与通过人员ID查询出该人员所在的部门;索引idx_dept适用与通过部门查询出该部门下所属的人员.

MYSQL必读其它

MYSQL必读测试数据

MYSQL必读Test.sql

MYSQL必读总结

MYSQL必读以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的赞助,如果有疑问大家可以留言交流,谢谢大家对维易PHP的支持.

维易PHP培训学院每天发布《Mysql入门图文详解MySQL中两表关联的连接表如何创建索引》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值