Files
MySQL-Study/数据库6.1.md
2025-11-14 13:25:18 +08:00

36 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一、索引的概念
1. 索引是一个*单独的、物理的* **数据库结构**
2. 索引是*依赖于***表**建立的
3. 索引是某个表中*一列*或*若干列*值的**集合**
4. 索引可以**提高**数据的访问速度
# 二、索引的分类
1. 普通索引:最基础的索引类型,作用于单列或多列(组合索引);
仅用于加速数据检索不强制要求列的唯一性允许重复值和null值。
2. 唯一性索引列的值必须唯一但允许有空值关键字为unique
3. 全文索引主要用在查询数据库量较大的字符型字段上关键词为fulltext
4. 空间索引是对空间数据类型的字段建立的关键字为spatial
5. 单列索引:即一个索引只包含单个列,一个表可以有多个单列索引
6. 多列索引:就是在多个字段上创建一个索引,也成为复合索引
# 三、索引的创建
1. 创建表的同时去创建索引
2. 修改表的同时去创建索引
```sql
alter table
add index ()
```
1. 直接创建索引(重点)
```sql
create [unique|fulltext|spatial] index
[using {btree|hash}]
on ([(n)][asc|desc],.....)
```
# 四、索引的设计原则
1. 主键、连接中频繁使用的列需要建立索引;
2. 避免对经常更新的表进行过多的索引;
3. 数据量小的表最好不要使用索引;
4. 在不同值少的列上不要建立索引;
5. 指定唯一索引是由某种数据本身的特征来决定的;
6. 为经常需要排序、分组和联合操作的字段建立索引。