mysql地理空间索引效率_使用 索引 提高 MySQL 的查询 效率

本文探讨了MySQL数据库中索引的作用,强调其能显著提高查询速度。通过实例解释了无索引和使用索引的查询效率对比,并介绍了不同类型的索引,如B+Tree、Hash和全文索引。同时,提到了如何通过EXPLAIN关键字分析SQL查询的执行计划,以及在频繁写操作的表上使用索引的考虑。
摘要由CSDN通过智能技术生成

索引

是一种数据库存放数据的摆放方式(数据结构);

使用索引的目的是为了提高查询数据的效率(是一种用空间/索引占用空间/换时间的方式);

使用索引的 查询效率 提高100万倍 情景

举一个例子,三个表t1、t2、t3,每个表中只有一个字段,但是每一个表中都有1000行记录,这些记录都是1~1000的数字。

执行以下的查找语句mysql>SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3;

在无索引的情况下处理此查询, 必须寻找 3 个表所有的组合,以便得出与WHERE子句相配的那些行。而可能的组合数目 为1000×1000×1000(十亿)

如果对每个表进行索引,就能极大地加速查询进程,利用索引的查询处理如下。

从表 t1 中选择第一行,查看此行所包含的数据。

使用表 t2 上的索引,直接定位t2中与t1的值匹配的行。同理,利用表t3上的索引, 直接定位t3中与t1的值匹配的行。

扫描表 t1 的下一行并重复前面的过程,直到遍历t1中所有的行。

>>标题中的 100万 倍 是 春秋笔法,说明 使用 索引 的功效;

索引根据数据结构来分=>B+Tree索引/Hash索引/R-Tree索引Full-text索引(全文索引),

首先 不同的数据库引擎支持可以用的索引是不完全相同的;

其中B+Tree索引是最常用的索引,InnoDB与MyISAM都支持B+Tree索引

老实说对这种 数据结构 我了解不多,

MySQL在使用上来 区分

普通索引:

唯一索引:具有唯一约束的索引

主键索引:非空且唯一

外键索引:主外键约束的索引,MySQL搭集群的情景 不做这种 主键 关联 别人的外键 的事情;

组合索引:最左前缀

用索引提高查询效率

是这样,首先还是写sql,能够完成功能需要这是第一步,

然后再优化 sql 或者 优化 索引

通过 explain 关键字来 查看某条SQL语句的执行方式,type如果是all代表查询没有走索引,是通过全表扫描的方式执行;

比如:

EXPLAIN

SELECT id,NAME FROM

tb_sku

WHERE MATCH (NAME) AGAINST ('夕阳红 -男款' IN BOOLEAN MODE);

最后

索引是用空间换查询效率 , 如果一张表 会频繁的 写 数据 , 则使用索引影响写的效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值