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

  • 相关阅读:
    文档视图
    引入缓冲池技术
    数据库访问与查询
    OnInitialUpdate函数
    显示股票视图的全局函数
    切换视图的核心代码
    GuiEdit的使用
    操作方法
    SQL 使用 解析
    调用API 实现 窗体 拖动
  • 原文地址:https://www.cnblogs.com/telwanggs/p/11651846.html
Copyright © 2011-2022 走看看