分析型数据库 AnalyticDB学习 ----sql开发指南
DML
(1)实时表
1. insert
a. 插入相同会覆盖
b.其他的和sql一样
2. delete
a. 对于含有二级分区的表,where condition 子句必须包含二级分区条件
b.delete操作在删除大量数据时,可能引发性能问题,特别是删除的记录跨越超过3个以上的二级分区情况
c.如果是删除所有记录的情况,使用drop table
d.如果表有大量的历史数据要清理,建议使用二级分区自动清理机制
3. update 2.8版本支持update,如果不支持使用insert覆盖写方式实现update
(2)批量表
1. insert
a. 插入相同会覆盖
b. odps导入
2. delete
a.修改二级分区个数
b.发起一次改表odps到adb的任意一个同步任务
c.查询表的数据,确认历史分区是否删除
SQL
select [distinct] select_expr,select_expr from table_reference where condition
[group by col_name]
[ having having_condition]
[order by expr|position][desc| asc]
[union all select ....]
[union |intersect|minus ]
[limit]
SQL引擎说明
(1)computenode local/merge (简称LM):又称两阶段。优点是计算性能很好,并发能力强,缺点是,部分跨一级分区列的计算支持较差
(2)full mpp mode(简称mmp):支持丰富的函数,sql语法,数据量计算能力
(3)默认计算引擎,v2.8版本之后默认mpp,之前是lm
SQL hint使用
(1)强制使用computenode:/* +engine=computenode*/select…
(2)强制使用full mpp mode计算引擎:/+engine=mpp/select…
SQL 开发规范
(1)ads为表创建所有列的索引,可以直接使用disable true
(2)sql 开发不需要考虑索引是否存在,但需要合理使用
SQL开发客户端工具
(1)DMS
(2)mysql命令行客户端
(3)DBeaver