pg 快速造1000w测试数据
pg 快速造1000w测试数据
一个 有1000w
数据的产品表:
-- Table: public.product
-- DROP TABLE public.product;
CREATE TABLE public.product
(id bigint NOT NULL,name character varying(30) COLLATE pg_catalog."default" NOT NULL,price numeric(30,6) NOT NULL,created_at time without time zone NOT NULL,comment text COLLATE pg_catalog."default",CONSTRAINT product_pkey PRIMARY KEY (id)
)
WITH (OIDS = FALSE
)
TABLESPACE pg_default;ALTER TABLE public.productOWNER to postgres;
COMMENT ON TABLE public.productIS '产品表';
创建一个 获取随机字符串的函数; 执行一下就好;
create or replace function f_random_str(length INTEGER)
returns character varying AS $$
DECLAREresult varchar(50);
BEGINSELECT array_to_string(ARRAY(SELECT chr((65 + round(random() * 25)) :: integer)FROM generate_series(1,length)), '') INTO result;return result;
END;
$$ LANGUAGE plpgsql;
造1000w数据, 大概需要5分钟;
insert into product
select
generate_series(1,10000000),
f_random_str(12) ,
(random()*(1000))::decimal,
clock_timestamp(),
md5(random()::text)
造1000w 数据(有中文的成绩表)
-- 生成指定长度的字符串
create or replace function f_random_str(length INTEGER)
returns character varying AS $$
DECLAREresult varchar(50);
BEGINSELECT array_to_string(ARRAY(SELECT chr((65 + round(random() * 25)) :: integer)FROM generate_series(1,length)), '') INTO result;return result;
END;
$$ LANGUAGE plpgsql;-- 随机中文
create or replace function gen_hanzi(int) returns text as $$
declareres text;
beginif $1 >=1 thenselect string_agg(chr(19968+(random()*20901)::int), '') into res from generate_series(1,$1);return res;end if;return null;
end;
$$ language plpgsql strict;-- 创建测试表
create table testdata(id integer,name varchar(20),course int,grade numeric(4,2),testtime date,note text);-- 插入测试数据
insert into testdata
select generate_series(1,10000000) as id,
f_random_str(3+(random()*5)::integer) as name,
(random()*100)::integer as course,
(random()*99)::numeric(4,2) as grade,
now() - ((random()*1000)::integer||' day')::interval as testtime,
gen_hanzi(3+(random()*5)::integer) as note;
pg 快速造1000w测试数据相关推荐
- mysql 快速造数据sql
生产库表数据导入开发库 重复数据处理 步骤: 导出生产库表 advertiser,在开发库里新建同样的表命名为 advertiser_copy,把导出的advertiser.sql文件表名全部修改成 ...
- 【Salesforce】快速清除所有测试数据的方法,截断(Truncate)对象
[Salesforce]快速清除所有测试数据的方法,截断(Truncate)对象 文章目录 [Salesforce]快速清除所有测试数据的方法,截断(Truncate)对象 场景 截断功能简介 使用方 ...
- mpp新增一个字段_如何快速新增百万测试数据?
柠檬班的APP上线之前,需要一百万个学员的信息进行压力测试. 那么数据从哪里来呢?直接找开发帮忙?可能会被他鄙视! 一条一条去insert?嗯,算了下大概需要20年! 不用怕,Happy老师接下来教你 ...
- MySQL快速生成大量测试数据1000万
#建测试表 CREATE TABLE t (id int NOT NULL AUTO_INCREMENT PRIMARY KEY comment '自增主键', dept tinyint not nu ...
- 如何快速新增百万测试数据?
XXX的APP上线了, 现需要一百万个学员的信息进行压力测试, 那么数据从哪里来呢? 直接找开发帮忙? 可能会被他鄙视! 一条一条去insert? 嗯,算了下大概需要20年! 不用怕,Happy老师接 ...
- MySQL快速生成大量测试数据(100万、1000万、1亿)
这种做法生成的测试数据相对比较符合实际,注册时间和最后登录时间都既有一定的时间顺序,又有在时间区间内有随机生成,代码都有注释,这里就不多说了,代码如下: #建测试表 drop table if exi ...
- MySQL 快速造数 mysql_random_data_load
安装 mysql_random_data_load GitHub 地址 wget -q https://github.com/Percona-Lab/mysql_random_data_load/re ...
- python jdbc_javapython连接mysql快速造数
JAVA 环境: MySQL:mysql-essential-5.1.51-win32 jdbc驱动:百度 Eclipse:百度 1.创建数据库 mysql>CREATE DATABASE te ...
- java mysql 快速插入1000w条数据_教你88秒插入1000万条数据到mysql数据库表
我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...
最新文章
- 利用CxImage实现编解码Gif图像代码举例
- 开源 java CMS - FreeCMS2.8 自定义标签 siteOne
- 宣告放弃社交后,支付宝把希望放在了“信息流”上
- mysql的字段空格是null_MySQL中NULL与空字符串 空格问题
- C语言90道试题资料
- 计算机网络可以把在区域上分散的单个,计算机网络技术及应用课后习题
- 迁移上云方法论-6R
- atom-design(Vue.js移动端组件库)手势组件介绍
- 数学--数论--莫比乌斯反演
- fan怎么写 jin_拼音为fan的字
- Java面向对象的三大特征(封装,继承,多态)
- ajax 表格删除,jQuery AJAX删除只捕获第一个表格
- 【干货】借助用户画像解决电商业务问题.pdf(附下载链接)
- 智能优化算法:哈里斯鹰算法-附代码
- 【记录】C++中的位域
- 导航栏隐藏的正确方式
- 刘帅嵌入式系统-ORR逻辑或操作指令
- BAPI_PO_CREATE1--单价增大10倍问题
- matlab xcorr lags,[转载]matlab中xcorr的用法
- python实现翻转金字塔图案