HSQLDB - 索引

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

在创建索引时,应该考虑什么是将用于进行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命令添加&删除INDEX

有四种类型的语句可以为表添加索引 :

  • 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 ADD INDEX index_name(column_list) : 这会添加一个普通索引,其中任何值都可能出现多次.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name(column_list) :  ;这将创建一个特殊的FULLTEXT索引,用于文本搜索.

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

ALTER TABLE testalter_tbl ADD INDEX (c);

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

ALTER TABLE testalter_tbl DROP INDEX (c);

显示INDEX信息

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

以下是显示有关表的索引信息的通用语法./p>

SHOW INDEX FROM table_name\G