【发布时间】:2018-03-13 11:32:24
【问题描述】:
由于我是一名初级 PHP 开发人员,日复一日地陷入了此处描述的性能问题:
我正在用 PHP 制作一个搜索引擎,我的数据库有一个包含 41 列和数百万行的表,显然它是一个非常大的数据集。在index.php 我有一个用于搜索数据的表单。当用户输入搜索关键字并点击提交时,操作是在search.php 上显示结果。查询是这样的。
SELECT * FROM TABLE WHERE product_description LIKE '%mobile%' ORDER BY id ASC LIMIT 10
这是第一个查询。结果显示后我必须像这样运行 4 个其他查询:
SELECT DISTINCT(weight_u) as weight from TABLE WHERE product_description LIKE '%mobile%'
SELECT DISTINCT(country_unit) as country_unit from TABLE WHERE product_description LIKE '%mobile%'
SELECT DISTINCT(country) as country from TABLE WHERE product_description LIKE '%mobile%'
SELECT DISTINCT(hs_code) as hscode from TABLE WHERE product_description LIKE '%mobile%'
这些查询是针对过滤器的,问题是当我提交搜索按钮时,所有查询都在以性能问题为代价同时运行,它非常慢。
有没有其他方法可以获取weight,country,country_unit,hs_code speeder 或者如何实现。
这里实现了相同的功能,表格填充数据后过滤栏在哪里,我如何实现它。请帮助
Full Functionality implemented here.
我试图解释我的全部问题,如果有任何错误,请告诉我我会改进这个问题,我也是stackoverflow的新手。
【问题讨论】:
-
前导 '%' 表示它必须查看 每一 行。 5 次!
标签: php mysql performance filter