
# 支持与限制
实时数仓兼容所有列存语法，具体情况如下：
表1支持的语法 
| 语法                             | 是否支持 |
|:---|:---|
| CREATE TABLE                   | 支持   |
| CREATE TABLE LIKE              | 支持   |
| DROP TABLE                     | 支持   |
| INSERT                         | 支持   |
| COPY                           | 支持   |
| SELECT                         | 支持   |
| TRUNCATE                       | 支持   |
| EXPLAIN                        | 支持   |
| ANALYZE                        | 支持   |
| VACUUM                         | 支持   |
| ALTER TABLE DROP PARTITION     | 支持   |
| ALTER TABLE ADD PARTITION      | 支持   |
| ALTER TABLE SET WITH OPTION    | 支持   |
| ALTER TABLE DROP COLUMN        | 支持   |
| ALTER TABLE ADD COLUMN         | 支持   |
| ALTER TABLE ADD NODELIST       | 支持   |
| ALTER TABLE CHANGE OWNER       | 支持   |
| ALTER TABLE RENAME COLUMN      | 支持   |
| ALTER TABLE TRUNCATE PARTITION | 支持   |
| CREATE INDEX                   | 支持   |
| DROP INDEX                     | 支持   |
| DELETE                         | 支持   |
| ALTER TABLE 其他                 | 支持   |
| ALTER INDEX                    | 支持   |
| MERGE                          | 支持   |
| SELECT INTO                    | 支持   |
| UPDATE                         | 支持   |
| CREATE TABLE AS                | 支持   |
   
#### 约束限制
- 当需要使用HStore表时，需要同步修改以下几个参数的默认值，否则会导致HStore表性能严重劣化。 推荐的参数修改配置是：autovacuum_max_workers_hstore=3，autovacuum_max_workers=6，autovacuum=true。
  
- 8.2.1及以上版本支持列存btree索引脏数据清理，频繁更新入库的场景下能有效控制索引空间，提高入库与查询性能。实时场景不应该对列存使用psort索引原因如下：
  1. psort没有索引清理，索引空间会持续膨胀。
  
  2. psort只对攒批入库的数据进行排序，实时场景性能提升有限。
   
- 使用HStore异步排序功能时，需注意：
  1. 异步排序期间可能会阻塞部分数据的DML操作，最大的阻塞粒度为异步排序的行数阈值，因此在反复DML的场景下不建议使用此功能。
  
  2. 自动异步排序与列存vacuum互斥，当autovacuum流程中满足列存vacuum的条件，则直接跳过流程中的异步排序，等待下次触发（极端场景下因为反复大批量DML操作的执行，列存vacuum会不停被触发，因此异步排序总是无法被触发）。
   
 
