📜  SQL索引

📅  最后修改于: 2021-09-10 02:25:44             🧑  作者: Mango

在本文中,我们将看到如何在数据库中创建、删除和使用 INDEX。
索引是一个模式对象。服务器使用它通过使用指针来加速行的检索。它可以通过使用快速路径访问方法快速定位数据来减少磁盘I/O(输入/输出)。索引有助于加速选择查询和where子句,但它会减慢数据输入,包括更新插入语句。可以在不影响数据的情况下创建或删除索引。

例如,如果您想参考一本书中讨论某个主题的所有页面,您首先参考索引,该索引按字母顺序列出所有主题,然后参考一个或多个特定页码。

创建索引 –它的语法是:

CREATE INDEX index
 ON TABLE column;

其中index是赋予该索引的名称, TABLE是创建该索引的表的名称, column 是应用该索引的列的名称。

对于多列 –

CREATE INDEX index
 ON TABLE (column1, column2,.....);

唯一索引 –

CREATE UNIQUE INDEX index
 ON TABLE column;

唯一索引用于维护表中数据的完整性以及快速性能,它不允许多个值进入表中。

什么时候应该创建索引——

  • 一列包含范围广泛的值
  • 一列不包含大量空值
  • 一个或多个列在 where 子句或连接条件中经常一起使用

什么时候应该避免使用索引——

  • 桌子很小
  • 列不经常用作查询中的条件
  • 专栏经常更新

删除索引 –使用 DROP INDEX命令从数据字典中删除索引。

DROP INDEX index;

要删除索引,您必须是索引的所有者或具有DROP ANY INDEX权限。

更改索引:通过重建或重新组织索引来修改现有表的索引。

ALTER INDEX IndexName 
ON TableName REBUILD;

确认索引 –您可以检查用户或服务器本身给出的特定表中存在的不同索引及其唯一性。

select * from USER_INDEXES;

它将显示服务器中存在的所有索引,您也可以在其中找到自己的表。

重命名索引 –您可以使用系统存储过程 sp_rename 重命名数据库中的任何索引。

EXEC sp_rename  
   index_name,  
   new_index_name,  
   N'INDEX';