在使用广泛的传统数据库如 MySQL、Oracle 中,随机数据生成方法因种类少或实现成本高,一度影响构造随机数据的开发成本。虽然 OceanBase 提出了相应的解决方案,但也存在语法复杂,性能较差等问题。
OceanBase v4.2 及以上版本给大家带来了 简洁、高性能、批量、随机数据 的插入功能。
开篇又是一个问题
大家能不能看懂下面的这条 insert 语句的含义是什么?
create table t1 (
c1 varchar(10),
c2 bigint,
c3 bigint,
c4 bigint,
c5 bigint);
insert into t1
select
randstr(10, random()) c1,
random() c2,
zipf(1, 100, random(3)),
normal(0, 1, random()),
uniform(1, 100, random())
from
table(generator(100));
select * from t1;
-- 你觉得这里会查到什么样的数据?
有些人可能可以猜出来,这条 SQL 语句大概是说会向 t1 表中插入 100 行随机数据(用于测试),且每行数据都包含四个随机数和一个随机字符串。
但是 randstr、random、zipf、normal、uniform 的含义是什么?
如果您猜不出来,且希望快速了解一下 OceanBase 中的随机测试数据生成器,欢迎来 “DBA 实战营” 进行本次课程的学习,并通过在线体验获取积分和奖福利。