1、创建测试表

CREATE TABLE big_data
(
  id character varying(50) NOT NULL,
  name character varying(50),
  datetime timestamp with time zone,
  CONSTRAINT big_data_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE big_data
  OWNER TO postgres;

2、创建插入数据函数

CREATE OR REPLACE FUNCTION insert_bigdata()
  RETURNS text AS
$BODY$
declare ii integer;
declare jj integer;
begin

ii = 1;
    jj = 1;
    FOR ii IN 1..10 LOOP
        FOR jj IN 1..10000 LOOP
            INSERT INTO big_data values(uuid_generate_v4(), 'lisi'||jj, now());
        END LOOP;
    END LOOP;
    RETURN 'success';
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION insert_bigdata()
  OWNER TO postgres;

3、插入一千万条数据(修改函数中的循环次数,多执行几次,插入需要的数据)

select insert_bigdata();

4、给name字段不加索引和加索引分别统计执行时间

查询结果10条记录

select * from big_data where name='lisi10';

查询结果100条记录
select * from big_data where name='lisi100';

查询结果1000条记录
select * from big_data where name='lisi1000';

查询结果10000条记录
select * from big_data where name='lisi10000';

查询结果100000条记录
select * from big_data where name='lisi100000';

耗时统计表(单位/毫秒)

耗时统计图

5、结果总结

在查询结果小于1000条记录时,加索引会大幅度提高查询效率。

在查询结果大于1000条记录时,加索引对查询效率的提升逐渐减小,尤其是超过10000条时,使用索引后的查询时间也比较长。

当前结果仅适用于创建的big_data这张数据表(如果数据表中字段比较多,数据量比较大,会在更小的查询结果记录数出现加索引查询效率提升不明显的问题)。
————————————————
版权声明:本文为CSDN博主「朔语」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shuoyu816/article/details/82793968

最新文章

  1. ProxyPattern
  2. 使用JavaScript实现复选框全选与取消的功能
  3. RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡
  4. UILabel顶端对齐
  5. NSString与奇怪的retainCount
  6. POJ 2155 Matrix
  7. mysql自动化安装
  8. 【HTML5】表单元素
  9. nodejs 保存 payload 发送过来的文件
  10. http.request的请求
  11. 【Docker】 Swarm简单介绍
  12. 抽象,接口和Object类
  13. CodeBlocks(17.12) 代码调试基础方法&快捷方式
  14. react component onClick 函数带参数
  15. 云栖大会day1 下午
  16. 20.react库 入门
  17. js的简单介绍
  18. 多核CPU配合负载均衡可以这样用,为老板省点钱
  19. 性能监控(2)–linux下的vmstat命令
  20. php的explode()和implode()方法

热门文章

  1. ceph 接入OpenStack
  2. Django异常 - ImportError: No module named django.core.management
  3. 关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
  4. 六、MySQL系列之数据备份(六)
  5. ipsec][strongswan] ipsec SA创建失败后的错误处理分析
  6. springboot学习笔记(二)—— springboot的启动模式设置
  7. 个性化排序算法实践(四)——GBDT+LR
  8. idea的基础设置
  9. 做vue项目时,收集的一些有意思的功能
  10. Linux PAM 之cracklib模块