index 索引 多表联查

本文介绍了数据库中创建、使用和查看索引的方法,强调了索引对SQL查询性能的影响。同时,详细讲解了多表联查的三种方式——笛卡尔积、内连接、外连接,并给出了避免笛卡尔积的优化策略。此外,还探讨了子查询在数据库查询中的应用,帮助理解如何利用子查询提升查询效率。
摘要由CSDN通过智能技术生成

 index 索引

创建索引

CREATE INDEX 索引名 ON 表名(字段名)

使用索引

EXPLAIN#观察sql的性能/执行计划(possible_keys)
SELECT * FROM 表 WHERE dname='accounting'

查看索引

show index from 表

创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(字段名)

多表联查

1.笛卡尔基:把多张表用逗号隔开

select * from dept,emp

优化加where

select * from 表 逗号 表 where 表名.相同字段名=表名.相同的字段名

笛卡尔积没有实际意义,

2.三种链接 join

连接查询--相对高效,小表驱动大表

1.内链接 inner join:取两个表的交集

select * from 表 inner join  表 on 表名.相同字段名=表名.相同的字段名

2.左(外) 连接 left join:左表的所有和右表满足条件的,不满足是null

select * from 表 left join  表 on 表名.相同字段名=表名.相同的字段名

3.右(外) 链接right join:右表的所有和左表满足条件的,不满足是null

select * from 表 right join  表 on 表名.相同字段名=表名.相同的字段名

3.子查询 subquery

子查询:把上次的查询结果,用来作为下次查询的条件

MySQL的全文索引适用于在单个表中进行全文搜索,而不是用于多表联查。全文索引可以帮助你在一个表中快速搜索包含特定关键词的文本。它使用的是特殊的索引类型FULLTEXT,从MySQL 3.2版本开始支持。全文索引的原理是将文本数据按照一定的规则拆分成单词,并创建索引以加快搜索速度。 在多表联查中,通常使用普通索引来优化查询性能。普通索引可以用于快速定位到特定列的值所在的行,以在多表联查中进行关联。普通索引在MySQL中适用于所有数据类型的列,同时,主要的存储引擎InnoDB和MyISAM支持每个表创建最多16个索引。这些索引使用的底层算法是B-tree(B树),它能够保持数据有序,并在对数时间内完成数据的查找、顺序访问、插入和删除操作。 需要注意的是,子查询的效率可能低于连接查询,因为子查询通常需要执行多个SELECT语句,并且可能存在嵌套查询的情况。所以,在多表联查的情况下,尽量使用连接查询来代替子查询以提高性能。 综上所述,MySQL的全文索引适用于在单个表中进行全文搜索,而在多表联查中,可以使用普通索引来优化查询性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引](https://blog.csdn.net/weixin_39620197/article/details/113202361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQL多表联查](https://blog.csdn.net/kk_12345z/article/details/120022643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值