索引的操作
索引是一种有效组合数据的方式。通过索引,可以快速快速查询到数据库表对象中的特定记录,是一种提供性能的常用方式
1、关于索引
使用索引可以提高从表中检索数据的速度,索引由表中的一个字段和多个字段生成的键组成。
索引按存储类型可分为:B型树索引(BTREE)和哈希索引。
MySQL支持6种索引,分别为普通索引、唯一索引、全文索引、单列索引、多列索引、空间索引。
过多的索引会占据大量的磁盘空间。
一下情况适合创建索引:
- 经常被查询的字段,即在WHERE子句中经常出现的字段
- 在分组的字段,即在GROUP BY子句中出现的字段
- 存在依赖关系的子表和父表之间的联合查询,即主键或外键字段
- 设置唯一完整性约束的字段
2、创建表时创建普通索引
普通索引:在创建索引时,不附加任何限制条件(唯一,非空等限制),该类型的索引可以创建在任何数据类型的字段上。
语法形式:
create table table_name(
属性名 数据类型,
……
index|key [索引名](属性名1 [长度] [ASC|DESC])
)
3、在已经存在的表上创建普通索引
语法形式:
create index 索引名 on table_name (属性名 [长度] [ASC|DESC]);
4、通过SQL中语句alter table创建普通索引
语法形式:
alter table table_name add index|key 索引名(属性名 [长度] [ASC|DESC]);
5、创建表时创建唯一索引
唯一索引:在创建索引时,限制索引的值必须是唯一的。
在MySQL中,根据索引的创建方式,分为手动索引和自动索引两种。
自动索引,是指在数据库表里设置完整性约束时,该表会被系统自动创建索引。手动索引,是指手动在表上创建索引。当设置表的某个字段为主键或唯一完整性约束时,系统就会自动创建关联该字段的唯一索引。
语法形式:
create table table_name(
属性名 数据类型,
……
unique index|key [索引名](属性名1 [长度] [ASC|DESC])
);
6、在已经存在的表上创建唯一索引
语法形式:
create unique index 索引名 on table_name (属性名 [长度] [ASC|DESC]);
7、通过SQL语句alter table创建唯一索引
语法形式:
alter table table_name add unique index|key 索引名(属性名 [长度] [ASC|DESC]);
8、删除索引
删除索引即删除表中已存在的索引。之所以要删除索引,是由于这些索引会降低更新速度,影响数据库的性能。
语法形式:
drop index 索引名 on table_name;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现