postgresql 创建索引
时间: 2023-09-27 10:04:58 浏览: 78
在 PostgreSQL 中,创建索引可以通过 `CREATE INDEX` 命令实现。语法如下:
```sql
CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table_name ( column_name [ opclass ] [ ASC | DESC ] [ , ... ] ) [ WITH ( storage_parameter = value [, ... ] ) ]
```
其中,`UNIQUE` 表示要创建的索引是唯一索引,`CONCURRENTLY` 表示要在不阻塞其他操作的情况下创建索引(需要 PostgreSQL 版本 9.1 及以上支持);`name` 是要创建的索引的名称,如果没有指定则系统会自动生成一个名称;`table_name` 是要为其创建索引的表名;`column_name` 是要创建索引的列名,可以指定多列;`opclass` 是指定索引使用的算法类别,如果没有指定则使用默认的算法类别;`ASC` 表示升序,`DESC` 表示降序;`WITH` 子句是可选的,可以用来设置存储参数。
例如,创建一个名为 `idx_name` 的索引,用于加快对 `my_table` 表的 `name` 列的查询速度,可以使用以下命令:
```sql
CREATE INDEX idx_name ON my_table (name);
```
如果要创建一个唯一索引,可以在命令中添加 `UNIQUE` 关键字,例如:
```sql
CREATE UNIQUE INDEX idx_name ON my_table (name);
```
如果要创建一个并发索引,可以在命令中添加 `CONCURRENTLY` 关键字,例如:
```sql
CREATE INDEX CONCURRENTLY idx_name ON my_table (name);
```