云数据库 GAUSSDB-CREATE TABLE:优化建议

时间:2023-12-14 09:05:30

优化建议

  • UNLOGGED
    • UNLOGGED表和表上的索引因为数据写入时不通过WAL日志机制,写入速度远高于普通表。因此,可以用于缓冲存储复杂查询的中间结果集,增强复杂查询的性能。
    • UNLOGGED表无主备机制,在系统故障或异常断点等情况下,会有数据丢失风险,因此,不可用来存储基础数据。
  • TEMPORARY | TEMP
    • 临时表只在当前会话可见,会话结束后会自动删除。
    • 除了当前CN外,其他CN对于该临时表不可见。
  • LIKE
    • 新表自动从这个表中继承所有字段名及其数据类型和非空约束,新表与源表之间在创建动作完毕之后是完全无关的。
  • LIKE INCLUDING DEFAULTS
    • 源表上的字段缺省表达式只有在指定INCLUDING DEFAULTS时,才会复制到新表中。缺省是不包含缺省表达式的,即新表中的所有字段的缺省值都是NULL。
  • LIKE INCLUDING CONSTRAINTS
    • 源表上的CHECK约束仅在指定INCLUDING CONSTRAINTS时,会复制到新表中,而其他类型的约束永远不会复制到新表中。非空约束总是复制到新表中。此规则同时适用于表约束和列约束。
  • LIKE INCLUDING INDEXES
    • 如果指定了INCLUDING INDEXES,则源表上的索引也将在新表上创建,默认不建立索引。
  • LIKE INCLUDING STORAGE
    • 如果指定了INCLUDING STORAGE,则复制列的STORAGE设置会复制到新表中,默认情况下不包含STORAGE设置。
  • LIKE INCLUDING COMMENTS
    • 如果指定了INCLUDING COMMENTS,则源表列、约束和索引的注释会复制到新表中。默认情况下,不复制源表的注释。
  • LIKE INCLUDING PARTITION
    • 如果指定了INCLUDING PARTITION,则源表的分区定义会复制到新表中,同时新表将不能再使用PARTITION BY子句。默认情况下,不拷贝源表的分区定义。
  • LIKE INCLUDING RELOPTIONS
    • 如果指定了INCLUDING RELOPTIONS,则源表的存储参数(即源表的WITH子句)会复制到新表中。默认情况下,不复制源表的存储参数。
  • LIKE INCLUDING DISTRIBUTION
    • 如果指定了INCLUDING DISTRIBUTION,则源表的分布信息会复制到新表中,包括分布类型和分布列,同时新表将不能再使用DISTRIBUTE BY子句。默认情况下,不拷贝源表的分布信息。
  • LIKE INCLUDING ALL
    • INCLUDING ALL包含了INCLUDING DEFAULTS、INCLUDING CONSTRAINTS、INCLUDING INDEXES、INCLUDING STORAGE、INCLUDING COMMENTS、INCLUDING PARTITION、INCLUDING RELOPTIONS和INCLUDING DISTRIBUTION的内容。
  • ORIENTATION ROW
    • 创建行存表,行存储适合于OLTP业务,此类型的表上交互事务比较多,一次交互会涉及表中的多个列,用行存查询效率较高。
  • ORIENTATION COLUMN
    • 创建列存表,列存储适合于数据仓库业务,此类型的表上会做大量的汇聚计算,且涉及的列操作较少。
  • DISTRIBUTE BY
    • 事实表或者数据量较大的维度表建议创建为分布表。对指定的列进行Hash,通过映射,把数据分布到指定DN。语法为:distribute by hash(column_name)。
    • 数据量较小的维度表建议创建为复制表。表的每条记录存在所有数据节点(DN)中,即每个数据节点都有完整的表数据。语法为: distribute by replication。
support.huaweicloud.com/distributed-devg-v2-gaussdb/gaussdb_v5r2c10_0523.html