Hsqldb 简明教程

HSQLDB - Indexes

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

在创建索引时,应考虑哪些列将用于创建 SQL 查询,并在这些列上创建一列或多列索引。

实际上,索引也是一种表,它保留主密钥或索引字段以及指向实际表中每个记录的指针。

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

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

Simple & Unique Index

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

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 关键字。 simple index 允许表中存在重复值。

如果您想按降序对某列中的值进行索引,您可以在列名后添加保留字 DESC。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

ALTER Command to Add & Drop INDEX

有四类用于向表中添加索引的语句 −

  1. ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) − 此语句添加一个主键,这意味着索引值必须唯一且不能为 NULL。

  2. ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) − 此语句创建了一个其值必须唯一的索引(除了可能多次出现的 NULL 值)。

  3. ALTER TABLE tbl_name ADD INDEX index_name (column_list) − 这添加了一个普通索引,其中任何值都可能出现多次。

  4. ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) − 这创建了一个特殊的 FULLTEXT 索引,用于文本搜索目的。

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

ALTER TABLE testalter_tbl ADD INDEX (c);

你可以使用 DROP 子句和 ALTER 命令来删除任何索引。以下是删除上述创建的索引的查询。

ALTER TABLE testalter_tbl DROP INDEX (c);

Displaying INDEX Information

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

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

SHOW INDEX FROM table_name\G