gpt4 book ai didi

mysql - 选择所有列对性能不利吗?

转载 作者:可可西里 更新时间:2023-11-01 06:27:30 25 4
gpt4 key购买 nike

一次SELECT 所有列是否不好,即使您可能不需要所有列?然而,您可能在另一个任务中需要它们,但您懒得为每个任务编写查询。

您是否应该仅在SELECT 所需列的位置进行查询,并在需要其他列时再次执行此查询?

所以基本上问题是:SELECT 一列与多列对性能有什么影响吗?

查询非常简单(没有函数、连接等)例如:

SELECT
id, name, status, date
FROM user_table
WHERE user_id = :user_id

最佳答案

这里的问题与其说是数据库服务器的问题,不如说是网络通信的问题。通过一次选择所有列,您告诉服务器返回给您,一次所有列。至于对 IO 的担忧以及所有这些,这些问题在问答@Karamba 中得到了很好的解决发表评论:select * vs select column .但对于大多数现实世界的应用程序(我在任何意义上都使用“应用程序”),主要关注的只是网络流量以及序列化、传输和反序列化数据需要多长时间。尽管确实如此,但无论哪种方式,答案都是一样的。

因此,如果您打算全部使用所有列,那么撤回所有列非常好,但这可能需要大量额外的数据传输,尤其是当您在列中存储冗长的字符串时。当然,在许多情况下,这种差异是无法察觉的,而且大多只是原则问题。不是全部,而是绝大多数。

这实际上只是您现在提到的懒惰(相信我,我们都有这种感觉)与性能真正的重要性之间的权衡。

总而言之,如果您确实打算使用所有列值,那么您最好一次将它们全部拉回,然后提交一堆查询。

将它想象成进行网络搜索:您进行搜索,找到您的页面,您只需要一个细节。您可以阅读整个页面并了解有关该主题的所有内容,或者您​​可以直接跳到有关您要查找的内容的部分并完成。如果这就是你想要的,后者要快得多,但如果你随后将不得不了解其他方面,你最好第一次阅读它们而不是再次搜索并找到网站来谈论它。

如果您不确定将来是否需要其他列值,那么您作为开发人员需要做出的决定更有可能是这种情况。

这完全取决于您的应用程序是什么、您的数据是什么、您如何使用它们以及性能对您来说真正的重要性。

关于mysql - 选择所有列对性能不利吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25093187/

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