标签:index 性能 random pg 测试 where create select tbl
插入测试
1.1. 环境信息
数据库 |
postgresql |
版本 |
9.6 |
系统 |
linux centos 7.3 |
共享内存 |
1280M |
其它配置 |
保持默认 |
1.2. 建表sql语句汇总
--创建随机日期时间函数
CREATE OR REPLACE FUNCTION rand_date_time(start_date date, end_date date) RETURNS TIMESTAMP AS
$BODY$
DECLARE
interval_days integer;
random_seconds integer;
random_dates integer;
random_date date;
random_time time;
BEGIN
interval_days := end_date - start_date;
random_dates:= trunc(random()*interval_days);
random_date := start_date + random_dates;
random_seconds:= trunc(random()*3600*24);
random_time:=' 00:00:00'::time+(random_seconds || ' second')::INTERVAL;
RETURN random_date +random_time;
END;
$BODY$
LANGUAGE plpgsql;
--创建随机数的存储过程
create OR REPLACE function f_random_str(length INTEGER) returns character varying
LANGUAGE plpgsql
AS $$
DECLARE
result varchar(50);
BEGIN
SELECT array_to_string(ARRAY(SELECT chr((65 + round(random() * 25)) :: integer)
FROM generate_series(1,length)), '') INTO result;
return result;
END
$$;
drop table if exists tbl_index5000;
create table if not exists tbl_index5000(a bigint,b timestamp without time zone, c varchar(16), d varchar(32), e varchar(48));
insert into tbl_index5000 (a,b,c,d,e) select generate_series(1,5000*10000), '2019-06-05',f_random_str(16),f_random_str(32),f_random_str(48);
1.3. 建索引sql语句汇总
create index index_a1 on tbl_index1 using btree(a);
create index index_a10 on tbl_index10 using btree(a);
create index index_a100 on tbl_index100 using btree(a);
create index index_a1000 on tbl_index1000 using btree(a);
create index index_a5000 on tbl_index5000 using btree(a);
create index index_b1 on tbl_index1 using btree(b);
create index index_b10 on tbl_index10 using btree(b);
create index index_b100 on tbl_index100 using btree(b);
create index index_b1000 on tbl_index1000 using btree(b);
create index index_b5000 on tbl_index5000 using btree(b);
create index index_c1 on tbl_index1 using btree(c);
create index index_c10 on tbl_index10 using btree(c);
create index index_c100 on tbl_index100 using btree(c);
create index index_c1000 on tbl_index1000 using btree(c);
create index index_c5000 on tbl_index5000 using btree(c);
create index index_a10000 on tbl_index10000 using btree(a);
create index index_b10000 on tbl_index10000 using btree(b);
create index index_c10000 on tbl_index10000 using btree(c);
1.4. 查询sql语句汇总
select "count"(*) from tbl_index1;
select "count"(*) from tbl_index10;
select "count"(*) from tbl_index100;
select "count"(*) from tbl_index1000;
select "count"(*) from tbl_index5000;
select "count"(*) from tbl_index10000;
select * from tbl_index1 where a=123456;
select * from tbl_index10 where a=123456;
select * from tbl_index100 where a=123456;
select * from tbl_index1000 where a=123456;
select * from tbl_index5000 where a=123456;
select * from tbl_index10000 where a=123456;
select * from tbl_index1 where b='2019-06-05 15:46:56';
select * from tbl_index10 where b='2019-06-05 15:46:56';
select * from tbl_index100 where b='2019-06-05 15:46:56';
select * from tbl_index1000 where b='2019-06-05 14:46:56';
select * from tbl_index5000 where b='2019-06-06 14:46:56';
select * from tbl_index10000 where b='2019-06-05 14:46:56';
select * from tbl_index1 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index10 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index100 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index1000 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index5000 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index10000 where c='FKXXEJJYRQSJKVTT';
select * from tbl_index1 where d='EIDRQTLVYJMNNYRSKPQNYZMQQEABAUUE';
select * from tbl_index10 where d='EIDRQTLVYJMNNYRSKPQNYZMQQEABAUUE';
select * from tbl_index100 where d='EIDRQTLVYJMNNYRSKPQNYZMQQEABAUUE';
select * from tbl_index1000 where d='EIDRQTLVYJMNNYRSKPQNYZMQQEABAUUE';
select * from tbl_index5000 where d='EIDRQTLVYJMNNYRSKPQNYZMQQEABAUUE';
1.5. 测试使用查询语句
计数 |
select "count"(*) from tbl_index*; |
这里的表名需要替换为相应的各个表 |
查询1 |
select * from tbl_index* where a=9999; |
这里由于a不是主键,所以需要全表扫描,所以查询时间与a的值无关 |
查询2 |
select * from tbl_index* where b='2019-06-05 15:46:56'; |
随机一个时间 |
查询3 |
select * from tbl_index* where c='FKXXEJJYRQSJKVTT'; |
随机16位字符串 |
1.6. 插入耗时
1.7. 查询耗时
标签:index,性能,random,pg,测试,where,create,select,tbl 来源: https://www.cnblogs.com/gc65/p/11011931.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。