MySql查询请求时间和服务器负载

时间:2013-12-09 09:17:09

标签: mysql request

我在我的主页上有来自同一个表的10个请求,每个请求都有不同的条件,这就是我提出10个请求的原因。该表有12列。我的问题是......它是否与

有所不同

页面加载时间和服务器负载如果我只需要从此表中请求6列,并将请求作为(SELECT * FROM ...)而不是发出请求(SELECT列,列,列,列,列,columnsFROM ....)

任何信息或建议都会有所帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

仅选择您真正需要的列将始终比select *更快,除非您选择所有列。即使这样,指定列也是可取的,因为对数据库的更改不会改变代码的作用。

列越大,您看到的差异就越大。想象一下这样的表:

create table person (
    id integer,
    name varchar(20),
    photo blob
);

现在选择select * from person where id>=10 and id<=20。这意味着mysql服务器必须从数据库中读取所有匹配的记录,包括可能很大的照片blob,并将所有这些记录传递给您的应用程序,只是让您的应用程序丢弃照片,这样可以生成99%的选定数据。无论如何,如果你丢弃照片,select id, name from person ...将会更快,并且减少了机器的负担,这对于同时拥有大量访问者的重载网站来说非常重要。

当然,如果你的表有6个整数列,并且你的决定是为所有这些列选择*,或者选择4个特定的列,则效果不太明显。

如果你有一个类似上面的表,并且你选择的只包含id和name,但是没有照片,那么在这两列上添加composite index是有意义的。这样,在选择时,数据库服务器只需要读取密钥,甚至不必从磁盘加载照片。

相关问题