bigData

Phoenix建表建序列及常用优化

2020-04-11  本文已影响0人  叫小七的剑客

Phoenix建表及优化

CREATE TABLE IF NOT EXISTS table(
"id" bigint not null primary key,
info."name" varchar,
info."age" integer,
info."address" varchar,
info."phone" bigint,
info."birthday" bigint
) SALT_BUCKETS=3,immutable_rows=true,COMPRESSION='GZ';

建联合主键表

create table if not exists table(
 "id" bigint not null,
 "name" varchar not null,
 info."age" integer,
 info."address" varchar,
 info."phone" bigint,
 "birthday" bigint not null
 CONSTRAINT PK PRIMARY KEY ("id","name","birthday")
) SALT_BUCKETS=3,COMPRESSION='GZ';

CONSTRAINT PK PRIMARY KEY (“id”,“name”,“birthday”),使用"id",“name”,"birthday"建立联合主键,只有做主键的字段上可以加not null,普通字段不可以

建索引

CREATE INDEX my_index ON table("name");

给name字段建全局索引

CREATE INDEX my_index1 ON table("name") INCLUDE("address","phone");

给name字段建覆盖索引,覆盖字段是address和phone,就是说在索引表里面除了name索引字段和指向原纪录的指针外还包含了address和phone字段,当通过name查询时,这两个字段时可以直接从索引表中带出的,而不用再通过指针指向原表去查找了。这种覆盖索引对有关联关系的字段特别适用。

drop index my_index1 on table;  //删除索引

序列SEQUENCE

创建序列
CREATE SEQUENCE use_users_sequence CACHE 1000;
查询所有的序列
SELECT sequence_schema, sequence_name, start_with, increment_by, cache_size FROM SYSTEM."SEQUENCE";
查看下一个序列值
select next value for use_users_sequence;
查看当前序列值
select current value for use_users_sequence;
删除序列
DROP SEQUENCE use_users_sequence;
插入数据的时候用自增序列值做表的自增id
UPSERT VALUES INTO use_users(autoid, col1, col2)  VALUES( NEXT VALUE FOR use_users_sequence, '11', '22');

————————————————
版权声明:本文为CSDN博主「XDSXHDYY」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/XDSXHDYY/article/details/100063757

上一篇 下一篇

猜你喜欢

热点阅读