最有效地使用数据库查询

时间:2011-05-30 作者:Richard B

我有一个自定义数据库表,其中包含大量数据,我想从我构建的自定义模板文件中多次查询这些数据。假设db表如下所示:

id     name     city          zip
23     Mike     New York      123
54     Peter    Los Angeles   456
78     Steven   Chicago       789
79     Tom      Los Angeles   450
我想运行至少四个查询,看起来有点像这样:

SELECT * FROM table LIMIT $paginated,10 (this is presenting all of the names)
SELECT id,city FROM table GROUP BY city (this will be a dropdown list of all the citys)
SELECT zip FROM table WHERE city = "New York" GROUP BY zip
这只是三个查询,但不管怎样,只运行一个包含所有数据的大查询到一个数组中,然后在需要时循环该数组更有效,还是执行实际的db查询更好?

我正在为每个查询使用$wpdb->get\\u results当然,这对服务器来说更难处理吗?我的意思是,使用WP代码执行DB查询应该会导致编译器翻译更多的PHP代码,我错了吗?

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

这个$wpdb 对象is based on ezSQL, 它不会增加太多开销,所以我不担心这一点。与使用$wpdb 功能。

您描述的三个查询是在数据库中执行的理想查询(来自大型数据集的一个小结果集),因此您不应该在PHP中模拟它们。确保向表中添加一些索引以加快查询速度(一对一city 至少)。使用EXPLAIN MySQL的特性,以了解数据库在执行查询时所做的操作以及您可以如何帮助它。

结束