微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 在什么条件下,SELECT by PRIMARY KEY会变慢?

在相当典型的 EclipseLink / JPA应用程序中查找一些数据库性能问题.

我看到频繁的查询需要25-100ms.这些是简单查询,只是从表中选择其主键等于值的所有列.他们不应该慢.

我正在查看postgres日志中的查询时间,使用log_min_duration_statement,这样可以消除任何网络或应用程序开销.

查询并不慢,但经常使用它.

为什么主键选择*会变慢?
这是特定于postgres还是一般数据库问题?
我怎样才能加快速度呢?一般来说?对于postgres?

来自pg日志的示例查询

2010-07-28 08:19:08 PDT - LOG:  duration: 61.405 ms  statement: EXECUTE <unnamed>  [PREPARE:  SELECT coded_ele
ment_key,code_system,code_system_label,description,label,code,concept_key,alternate_code_key FROM coded
_element WHERE (coded_element_key = $1)]

表有大约350万行.

我也在这查询上运行EXPLAIN和EXPLAIN ANALYZE,它只进行索引扫描.

解决方法

选择*会使您的数据库更加困难,并且作为一般规则,这是一种不好的做法. stackoverflow上有很多问题/答案正在讨论这个问题.

你试过用字段名称替换*吗?

原文地址:https://www.jb51.cc/mssql/78708.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐