sql索引

MySQL索引
Mysql索引主要有两种结构:B+Tree索引和Hash索引
Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引

PRIMARY KEY(主键索引)
ALTER TABLE table_name ADD PRIMARY KEY ( col )

UNIQUE(唯一索引)
ALTER TABLE table_name ADD UNIQUE (col)

INDEX(普通索引)
CREATE INDEX indexName ON mytable(username(length));
ALTER TABLE table_name ADD INDEX index_name (col)

FULLTEXT(全文索引)
ALTER TABLE table_name ADD FULLTEXT ( col )

组合索引
ALTER TABLE table_name ADD INDEX index_name (col1, col2, col3 )

Mysql各种索引区别:
普通索引:最基本的索引,没有任何限制
唯一索引:与”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引:它 是一种特殊的唯一索引,不允许有空值。
全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。
组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。创建复合索引时应该将最常用(频率)作限制条件的列放在最左边,依次递减。

mybatis对索引的应用
官方文档

参考文献:
Mysql索引介绍及常见索引的区别 - 北方寒士 - 博客园
MySQL ALTER命令 | 菜鸟教程
B+树比B树更适合做文件索引的原因 - 优快云博客

### SQL索引的创建和使用 #### 创建索引SQL中,可以通过多种方式来创建索引。以下是几种常见的方法: 1. **通过`ALTER TABLE`语句创建索引** 使用`ALTER TABLE`可以向已存在的表中添加新索引。例如,创建全文索引(Full-text Index)的方式如下所示: ```sql ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名(要创建索引的字段名); ``` 此外,还可以创建普通索引: ```sql ALTER TABLE 表名 ADD INDEX 索引名(字段名); ``` 2. **通过`CREATE INDEX`语句创建索引** `CREATE INDEX`是一种独立于表定义的方式来创建索引的方法。语法如下: ```sql CREATE INDEX 索引名 ON 表名(字段名); ``` 如果需要创建唯一索引,则可以在命令中加入`UNIQUE`关键字: ```sql CREATE UNIQUE INDEX 索引名 ON 表名(字段名); ``` 3. **复合索引的创建** 当查询涉及多个条件时,可以考虑创建复合索引(Composite Index)。复合索引是在多个列上建立的一个索引,能够显著提高多列联合查询的速度。其创建方式类似于单列索引: ```sql CREATE INDEX 复合索引名 ON 表名(字段1, 字段2, ...); ``` #### 删除索引 如果不再需要某个索引,可以通过以下方式进行删除: ```sql DROP INDEX 索引名 ON 表名; ``` 或者使用`ALTER TABLE`语句: ```sql ALTER TABLE 表名 DROP INDEX 索引名; ``` #### 使用索引的优点 索引的主要作用是加速数据检索过程。它就像一本书中的目录一样,使得数据库能够在大量记录中快速定位目标数据[^3]。 #### 分析索引的有效性 为了评估索引的实际效果并优化查询性能,可以利用`EXPLAIN`工具查看MySQL是如何执行查询计划的。具体操作是在任何`SELECT`语句之前加上`EXPLAIN`关键词: ```sql EXPLAIN SELECT * FROM 表名 WHERE 条件; ``` 这会返回关于查询执行的信息,包括使用的索引、扫描的行数等内容,从而帮助开发者调整查询逻辑或重新设计索引策略[^2]。 ### 总结 合理地创建和维护索引对于提升数据库查询效率至关重要。无论是简单还是复杂的查询场景下,都应根据实际需求选择合适的索引类型,并定期审查现有索引的效果以确保最佳性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anneCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值