gpt4 book ai didi

mysql - SQL,为什么查找数据比 SELECT * 显式更快

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

我在阅读 Django Book 时遇到了有趣的陈述。

Notice that Django doesn’t use SELECT * when looking up data and instead lists
all fields explicitly. This is by design:
in certain circumstances SELECT * can be slower,

我从 http://www.djangobook.com/en/1.0/chapter05/ 得到这个

所以我的问题是有人可以解释为什么 SELECT * 比显式调用每一列慢。如果你能给我一些例子就好了。或者,如果您认为相反(没关系),您能解释一下原因吗?

更新:

那是表格:

BEGIN;
CREATE TABLE "books_publisher" (
"id" serial NOT NULL PRIMARY KEY,
"name" varchar(30) NOT NULL,
"address" varchar(50) NOT NULL,
"city" varchar(60) NOT NULL,
"state_province" varchar(30) NOT NULL,
"country" varchar(50) NOT NULL,
"website" varchar(200) NOT NULL
);

这就是 Django 调用 SELECT * FROM book_publisher 的方式:

SELECT
id, name, address, city, state_province, country, website
FROM book_publisher;

最佳答案

  1. 性能(仅当您选择的列少于表中的列时才重要
  2. 我不确定 Django 是如何工作的;但在某些语言/数据库驱动程序中,如果更改表架构(比如添加新列),“select *”将导致错误。这是因为数据库驱动程序“缓存”了表架构,现在它的内部架构与表架构不匹配。

关于mysql - SQL,为什么查找数据比 SELECT * 显式更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12189321/

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