假设我有一个名为"User" 的 MySQL 表。
ID, Name, Email, Age, Gender, Country, Hometown, City, Address, Relationship_Status, Employment_Status, IP, Registered_Time
现在,哪个查询可以更有效地获取用户的所有信息?
一个)
SELECT * FROM User WHERE id=1
B)
SELECT ID FROM User WHERE id=1
SELECT Name FROM User WHERE id=1
SELECT Email FROM User WHERE id=1
SELECT Age FROM User WHERE id=1
SELECT Gender FROM User WHERE id=1
SELECT Country FROM User WHERE id=1
SELECT Hometown FROM User WHERE id=1
SELECT City FROM User WHERE id=1
SELECT Address FROM User WHERE id=1
SELECT Relationship_Status FROM User WHERE id=1
SELECT Employment_Status FROM User WHERE id=1
SELECT IP FROM User WHERE id=1
SELECT Registered_Time FROM User WHERE id=1
事实是,根据情况,我可能需要也可能不需要所有数据。那么,我是应该在需要时一个一个地获取数据,还是一次获取所有数据,然后根据需要使用?
感谢您的帮助!
最佳答案
获取多列的单个查询几乎总是比多个查询更有效。为什么?查询必须由 php 序列化,发送到 mySQL 服务器,反序列化。然后 mySQL 服务器必须执行 WHERE
操作以找到合适的一行或多行。最后它必须序列化结果并将它们发送回 php。你做的越少,系统要做的工作就越少。
专业提示:不要使用 SELECT *
。而是像这样枚举您想要的列。
SELECT ID, Name, Email, Employment_Status, Registered_Time
来自用户
其中 ID = 1
这种方法有很多优点,尤其是在返回许多行的查询中(您的查询没有)。
关于php - 从 MySQL 获取数据的更有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136735/