我有一个自定义数据库表,其中包含大量数据,我想从我构建的自定义模板文件中多次查询这些数据。假设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代码,我错了吗?
最合适的回答,由SO网友:Jan Fabry 整理而成
这个$wpdb
对象is based on ezSQL, 它不会增加太多开销,所以我不担心这一点。与使用$wpdb
功能。
您描述的三个查询是在数据库中执行的理想查询(来自大型数据集的一个小结果集),因此您不应该在PHP中模拟它们。确保向表中添加一些索引以加快查询速度(一对一city
至少)。使用EXPLAIN
MySQL的特性,以了解数据库在执行查询时所做的操作以及您可以如何帮助它。