分享
 
 
 

PostgreSQL数据库的学习之检查索引的使用

王朝mssql·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

8.8. 检查索引的使用

尽管在 PostgreSQL 里的索引并不需要维护和调节, 但是检查一下哪些索引是在实际查询工作中得到使用的仍然是非常重要的. 检查索引的使用是通过 EXPLAIN 命令进行的; 为此目地做的应用在 Section 10.1 里演示.

归纳一个判断需要设置哪些索引的通用过程是很难的. 在前面的章节中已经列出了许多典型的例子.在大多数情况下我们 都需要许多试验.本节的剩余部分就是给出一些这方面的窍门.

*

总是先运行 ANALYZE.这条命令收集关于表中 数值分布的统计.猜测一个查询返回的行数需要这个信息,而规划器 需要这个行数以便给每个可能的查询规划赋予真实开销值. 如果缺乏任何真实的统计信息,那么就会假设一些缺省数值, 那肯定是不准确的.因此,如果还没有运行 ANALYZE 就检查一个应用的索引使用状况,那实际上就是一次失败的检查.

*

使用真实的数据做实验.用测试数据设置索引将告诉你在测试数据中 需要什么索引,而不是在所有数据中.

最要命的是用按比例缩小的数据集.如果从 100000 行中选 1000 行 是使用索引的好时机,那么从 100 行中选 1 行很难说也需要索引, 因为 100 行很可能是装在一个磁盘页里面的,因此没有任何查询规划 能比通过顺序访问抓取一个磁盘页面更有效.

做测试数据的时候也要小心 -- 如果应用还不能在生产环境中使用, 那么这也是不可避免的.那些非常相似的数据,完全随机的数据,或者 按照排序顺序插入的数据会令统计信息偏离实际数据应该具有的特征.

*

如果索引没有得到使用,那么在测试中强制它的使用也许有些价值. 有一些运行时参数可以关闭各种各样的查询规划 (在 PostgreSQL 7.3 管理员手册 中描述).比如,关闭顺序扫描 (enable_seqscan) 和嵌套循环连接 (enable_nestloop)将强迫系统使用不同的规划. (这些规划是最基本的规划.)如果系统仍然选择顺序扫描或者嵌套循环联接, 那么在为何索引没有得到使用的问题中可能有更基本的问题, 比如,查询条件和索引不匹配等.(我们在前面的章节中介绍了 什么样的查询可以使用什么样的索引.)

*

如果强制索引用法的确使用了索引,那么就有两种可能∶ 要么是系统选择是正确的∶使用索引实际上并不合适,要么是查询计划 的开销计算并不反映现实情况.这样你就应该对使用和不使用索引的查询 进行计时.这个时候 EXPLAIN ANALYZE 命令就很有用了.

*

如果实际情况说明开销计算是错误的,那么仍然有两种可能. 总开销是从每行的每个规划节点乘以每个规划节点的选择性估计 的开销计算出来的.规划节点的开销可以用一些运行时参数进行调节 (在 PostgreSQL 7.3 管理员手册 中描述).不准确的选择性估计 是因为统计信息不够充分.我们可以通过调节统计收集参数 (参阅 ALTER TABLE )提高选择性估计的精确度.

如果你没能通过将开销调整得更准确实现索引的使用,那么你可能不得不 求助于明确地强制索引使用.而且也许与 PostgreSQL 开发人员联系并且讨论你的情况也是值得考虑的.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有