use*_*910 23 sql indexing amazon-web-services amazon-redshift
我正在尝试在Amazon Redshift中创建索引但是我收到了一个错误
create index on session_log(UserId);
Run Code Online (Sandbox Code Playgroud)
UserId 是一个整数字段.
Stu*_*tLC 52
如果您尝试在Redshift表上创建索引(带有名称):
create index IX1 on "SomeTable"("UserId");
Run Code Online (Sandbox Code Playgroud)
你会收到错误
执行SQL命令时发生错误:在"SomeTable"("UserId")上创建索引IX1错误:SQL命令"创建索引IX1 on"SomeTable"("UserId")"Redshift表不支持.
这是因为,与其他数据仓库一样,Redshift使用列式存储,因此,其他RDBMS中使用的许多索引技术(如添加非聚簇索引)都不适用.
但是,您可以选择为每个表提供单个排序键,还可以使用分发键来影响性能,以便对每个列进行分片,并为每个列选择适当的压缩编码,以最大限度地减少存储和I/O开销.
例如,在您的情况下,您可以选择使用UserId作为排序键:
create table if not exists "SomeTable"
(
"UserId" int,
"Name" text
)
sortkey("UserId");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35279 次 |
| 最近记录: |