GP索引调优测试--基本篇

GP索引调优测试--基本篇,第1张

概述简介 测试数据生成 无索引测试 测试1查找特定数据 测试2查找特定范围的语句 测试3排序测试 有索引测试 测试4查找特定数据 测试5查找特定范围的语句 测试6排序测试 总结 简介 以下是一些基本的,以体现索引功能的测试。 测试数据生成 以下参照PostgreSQL生成测试数据 进行。 创建表 CREATE TABLE test ( id integer, test integer ) WITH ( 简介 测试数据生成 无索引测试 测试1查找特定数据 测试2查找特定范围的语句 测试3排序测试 有索引测试 测试4查找特定数据 测试5查找特定范围的语句 测试6排序测试 总结 简介

以下是一些基本的,以体现索引功能的测试。

测试数据生成

以下参照PostgreSQL生成测试数据 进行。

创建表

CREATE table test ( ID integer,test integer ) WITH ( OIDS=FALSE );ALTER table test OWNER TO postgres;

产生1500w个随机数(0-1000),插入到表中,

insert into test SELECT generate_serIEs(1,15000000) as key,(random()*(10^3))::integer;

查看表的大小,大约为500MB。

无索引测试 测试1–查找特定数据 测试语句:select count(*) from test where test=200

执行计划:

测试2–查找特定范围的语句 测试语句:select * from test where test >= 800

执行计划:

测试3–排序测试 测试语句:select * from test order by test

执行计划:

有索引测试

在test字段,创建索引,创建完成后索引大小约为300MB。

CREATE INDEX test6 ON test USING btree (test);
测试4–查找特定数据 测试语句:select count(*) from test where test=200

执行计划:

仅需12ms,相比较未创建索引时的1.8s,有了极大提升。

测试5–查找特定范围的语句 测试语句:select * from test where test >= 800

执行计划:

显示走了索引,耗时1.9s,与未创建索引所需2.0s相比,差别不大。

但调整测试语句:select * from test where test >= 200,查看执行计划

并未走索引,是因为在返回记录过多的情况下,此时使用索引查取记录的开销(硬盘随机I/O)会很大,
所以仍然采用顺序浏览的方式获取记录。

测试6–排序测试 测试语句:select * from test order by test

执行计划:

相比较未创建索引时的24s,此时采用索引后时间反而延长!

总结 对于查找特定条件的记录,使用索引后查询性能会大大提升 筛选条件的稍微改变,都有可能影响索引的使用,当返回数据量过多时,此时往往不会走索引 索引设置不当,可能反而延长查询时间 总结

以上是内存溢出为你收集整理的GP索引调优测试--基本篇全部内容,希望文章能够帮你解决GP索引调优测试--基本篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1173946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存