📜  HSQLDB-索引

📅  最后修改于: 2020-11-27 05:12:52             🧑  作者: Mango


数据库索引是一种数据结构,可以提高表中操作的速度。可以使用一列或多列创建索引,这为快速随机查找和对记录访问的有效排序提供了基础。

创建索引时,应考虑将用于进行SQL查询并在这些列上创建一个或多个索引的列是什么。

实际上,索引也是表的类型,它们将主键或索引字段以及指向每个记录的指针保留到实际表中。

用户看不到索引。它们仅用于加速查询,并且数据库搜索引擎将使用它们来快速查找记录。

INSERT和UPDATE语句在具有索引的表上花费更多时间,而SELECT语句在那些表上运行得更快。原因是在插入或更新时,数据库也需要插入或更新索引值。

简单和唯一索引

您可以在表上创建唯一索引。唯一索引意味着两行不能具有相同的索引值。以下是在表上创建索引的语法。

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

您可以使用一个或多个列来创建索引。例如,使用tutorial_author在tutorials_tbl上创建索引。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

您可以在表上创建一个简单的索引。只需从查询中省略UNIQUE关键字即可创建一个简单的索引。一个简单的索引允许表中有重复的值。

如果要按降序索引列中的值,可以在列名后添加保留字DESC。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

ALTER命令添加和删除索引

有四种类型的语句可向表添加索引-

  • ALTER TABLE tbl_name ADD PRIMARY KEY(column_list) -此语句添加了PRIMARY KEY,这意味着索引值必须是唯一的并且不能为NULL。

  • ALTER TABLE tbl_name ADD UNIQUE index_name(column_list) -此语句创建一个索引,该索引的值必须唯一(NULL值除外,该值可能出现多次)。

  • ALTER TABLE tbl_name添加索引index_name(column_list) -这将添加一个普通索引,其中任何值都可能出现多次。

  • ALTER TABLE tbl_name添加FULLTEXT index_name(column_list) -这将创建一个特殊的FULLTEXT索引,该索引用于文本搜索。

以下是在现有表中添加索引的查询。

ALTER TABLE testalter_tbl ADD INDEX (c);

您可以使用DROP子句以及ALTER命令删除任何INDEX。以下是删除上面创建的索引的查询。

ALTER TABLE testalter_tbl DROP INDEX (c);

显示索引信息

您可以使用SHOW INDEX命令列出与表关联的所有索引。垂直格式输出(由\ G指定)通常对于此语句很有用,以避免长行换行。

以下是显示表的索引信息的通用语法。

SHOW INDEX FROM table_name\G