开发者社区> 问答> 正文

DDL索引

同主键一样,分析型数据库中索引的概念也是弱化的。在前文中介绍分析型数据库拥有高度智能的自动化索引机制,所以通常用户无需亲自为自己的数据表配置索引。但是有一种情况例外:暨0.8版本下用户需要对某列进行Hash Join时,无论是事实表之间的Join还是事实表和维度表的Join,都需要为事实表的该列建立索引(公共云当前版本无需)。
建立索引的语句如下:<PRE prettyprinted? linenums>

  1. ALTER TABLE tbl_name ADD INDEX [index_name] [index_type] (index_col_name) [comment=’’];

其中,[index_type] 为索引类型,需要指定为HashMap,index_col_name 为被索引列的列名。例如:<PRE prettyprinted? linenums>
  1. ALTER TABLE db_name.table_name
  2.   ADD INDEX user_id_index HashMap (user_id)

批量导入表索引修改后,需要重新导入数据后生效。实时写入表一般在24小时内自动生效,或如果要加速这个过程,可以执行optimize table 命令:<PRE prettyprinted? linenums>
  1. optimize table <tablename>;

执行成功一段时间后,新的索引会生效。
0.9及以后版本中分析型数据库会自动处理Hash Join时的索引构建,故无需用户自行创建HashMap索引也可以进行Hash Join,因此HashMap索引被废弃。

展开
收起
nicenelly 2017-10-26 15:14:45 1878 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载