gpt4 book ai didi

java - 优化数据库查询

转载 作者:行者123 更新时间:2023-11-29 11:11:24 25 4
gpt4 key购买 nike

我的问题是我们什么时候应该担心给定任务从 SQL 数据库中请求多少数据?

假设我有 PostgreSql 数据库。我有一个产品表,产品有 20 个字段。

在系统中,有些地方实际上只需要产品 ID、名称和价格。有些人认为,我应该只要求数据库中的这 3 个字段才有效。但我觉得开发人员总是执行 productService.getProduct(id) 然后选择他们需要的字段比为这些特定字段创建单独的类或查询要容易得多。

如果我询问 3 个或 20 个字段,对于查询速度来说真的很重要吗?可以增加多少负载?

(我是一个java开发者,有着“早期优化是万恶之源”的心态。)

最佳答案

与所有优化一样,在重要的时候。探查器和其他工具(例如 postgres 的 EXPLAIN ANALYZE )会让您知道。

实际机制取决于很多因素;正在使用的数据库、表/模式、表空间设置等,所以不可能给出任何明确的答案,但由于移动的数据量不同,因此无论您是否移动 100,000 行(每行 10 行),自然会产生影响列或 100,000 行(每行 3 列)。

如果从磁盘读取相同数量的页面,实际查询可能看不到显着差异,但内存和网络使用自然会有所不同。

幸运的是,如果原始查询成为瓶颈,您可以重构代码和查询以选择更少的数据。

关于java - 优化数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com