Php Mysql 多重查询_PHP MYSQL优化搜索多个查询

我目前正在为汽车经销商建立网站.我想允许用户优化类似于亚马逊或eBay的搜索结果.通过单击来缩小结果范围的能力将非常出色.问题是我这样做的方式,现在有许多不同的查询需要完成,每个查询总计COUNT个.

因此,缩小结果范围的主要方法是:

>车辆类型

>年份

>制作

>价格范围

>新/二手

目前,每次加载此页面时,我都会进行5个查询,以在传递设置值的同时获取结果数.

查询1:

SELECT vehicle_type, COUNT(*) AS total FROM inventory

[[ Already Selected Search Parameters]]

GROUP BY vehicle_type

ORDER BY vehicle_type ASC

查询2:

SELECT make, COUNT(*) AS total FROM inventory

[[ Already Selected Search Parameters]]

GROUP BY make

ORDER BY make ASC

查询3,4,5 …

有一种方法可以在一个查询中执行此操作吗?它更快吗?

解决方法:

您的查询似乎合理.

您可以使用UNION ALL在单个查询中完成此操作:

SELECT 'vehicle_type' AS query_type, vehicle_type, COUNT(*) AS total

FROM inventory

...

GROUP BY vehicle_type

UNION ALL

SELECT 'make', make, COUNT(*) AS total FROM inventory ... GROUP BY make

UNION ALL

SELECT ... etc ...

这样的性能优势不会很大.

如果发现大量触发了这些查询并且结果并不经常更改,则可能要考虑缓存结果.考虑使用memcache之类的东西.

标签:search,count,mysql,php

来源: https://codeday.me/bug/20191101/1980952.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值