zoukankan      html  css  js  c++  java
  • postgresql大数据查询加索引和不加索引耗时总结

    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

  • 相关阅读:
    Scrum学习总结
    1330. 翻转子数组得到最大的数组值
    LeetCode 中等题解(4)
    LeetCode 中等题解(3)
    LeetCode 中等题解(2)
    LeetCode 中等题解(1)
    【暑期实习】计算机视觉岗问题整理-腾讯
    【暑期实习】计算机视觉岗问题整理-快手
    【暑期实习】计算机视觉岗问题整理-阿里
    Leetcode 1329. 将矩阵按对角线排序 题解
  • 原文地址:https://www.cnblogs.com/telwanggs/p/11651846.html
Copyright © 2011-2022 走看看