- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表格
- SQL - 创建表格
- SQL - 显示表格
- SQL - 重命名表格
- SQL - 截断表格
- SQL - 克隆表格
- SQL - 临时表格
- SQL - 修改表格
- SQL - 删除表格
- SQL - 删除表格
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - Union vs Join
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 索引
SQL 索引
SQL 索引是用于加速数据检索过程的特殊查找表。它们包含指向存储在数据库中的数据的指针,这使得更容易在数据库表中找到所需的数据记录。
SQL 索引的工作原理类似于书籍或期刊的索引。
虽然索引可以加快数据检索查询(SELECT 语句)的性能,但会降低数据输入查询(UPDATE 和 INSERT 语句)的性能。但是,这些索引对数据没有任何影响。
SQL 索引需要在数据库中拥有自己的存储空间。尽管如此,用户无法物理地查看它们,因为它们只是性能工具。
CREATE INDEX 语句
可以使用CREATE INDEX语句在 SQL 中创建索引。此语句允许您命名索引,指定要索引的表和列或列,并指示索引是按升序还是降序排列。
最好在经常查询以进行数据检索的大表的列上创建索引。
语法
CREATE INDEX的基本语法如下所示:
CREATE INDEX index_name ON table_name;
索引类型
可以使用 CREATE INDEX 语句创建各种类型的索引。他们是
唯一索引
单列索引
组合索引
隐式索引
唯一索引
唯一索引不仅用于性能,还用于数据完整性。唯一索引不允许将任何重复值插入表中。当它们应用于数据库表时,主键和唯一约束会自动创建它,以防止用户将重复值插入已索引的表列中。基本语法如下所示。
CREATE UNIQUE INDEX index_name on table_name (column_name);
单列索引
单列索引仅在一个表列上创建。语法如下所示。
CREATE INDEX index_name ON table_name (column_name);
组合索引
组合索引是在表的两个或多个列上创建的索引。其基本语法如下所示。
CREATE INDEX index_name on table_name (column1, column2);
隐式索引
隐式索引是在创建对象时由数据库服务器自动创建的索引。例如,当在 MySQL 数据库中的表上创建主键和唯一约束时,会自动创建索引。
DROP INDEX 语句
可以使用 SQL DROP 命令删除索引。删除索引会影响数据库中的查询性能。因此,仅在绝对必要时才需要删除索引。
基本语法如下所示:
DROP INDEX index_name;
何时应避免使用索引?
尽管索引旨在增强数据库的性能,但在某些情况下应避免使用它们。
以下指南指示何时应重新考虑使用索引。
不应在小型表上使用索引。
不应将其用于经常进行大量批量更新或插入操作的表。
不应在包含大量 NULL 值的列上使用索引。
不应为经常被操作的列建立索引。