MySQL选择查询需要一些优化

苏尼斯·卡拉哈(Suneth Kalhara)

我正在尝试建立我的第一个查询的搜索页面查询,这非常快,结果在毫秒内加载

$ query是php变量,它是搜索文本

$sql="SELECT * FROM 
tbl_product 
WHERE 
((tbl_product.pd_name LIKE '%$query%') 
OR (tbl_product.pd_art LIKE '%$query%') 
OR (tbl_product.pd_srkw LIKE '%$query%')) 
AND pd_bestsell <> 1  
ORDER BY RAND()";

但是,当我使用搜索建议表构建查询时,它的运行速度非常慢,并且需要2-4秒的加载时间。我们的服务器是非常强大的专用服务器,因此它不会成为服务器的问题。

sgtexts =保留建议文本

sgproduct =在建议表上保留产品ID

$sql="SELECT * FROM 
tbl_product,tbl_suggetions 
WHERE 
((tbl_product.pd_name LIKE '%$query%') 
OR (tbl_product.pd_art LIKE '%$query%') 
OR (tbl_product.pd_srkw LIKE '%$query%') 
OR (tbl_suggetions.sgtexts LIKE '%$query%' 
AND tbl_product.pd_id=tbl_suggetions.sgproduct))  
AND pd_bestsell <> 1 
GROUP BY pd_id 
ORDER BY RAND()";

谁能帮我优化第二次查询

疯狗坦能

您是否有任何理由要随机订购?删除它可以使其更快。

由于您将LIKE运算符与一起使用%%,因此将执行全表扫描,并且比使用LIKE'example%'

另外,在表上使用联接。试试这个

SELECT 
        * 
FROM    tbl_product         tbl_product
JOIN    tbl_suggetions      tbl_suggetions ON tbl_suggetions.sgproduct=tbl_product.pd_id
WHERE 
(
(tbl_product.pd_name    LIKE '%$query%')        OR 
(tbl_product.pd_art     LIKE '%$query%')        OR 
(tbl_product.pd_srkw    LIKE '%$query%')        OR 
(tbl_suggetions.sgtexts LIKE '%$query%')
)  
    AND pd_bestsell <> 1 
    GROUP BY pd_id 
    ORDER BY RAND();

如果数据不需要随机排序,请删除 ORDER BY RAND()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

优化查询仍然需要一些时间

来自分类Dev

我需要一些帮助来优化查询

来自分类Dev

Hibernate查询语言:选择一些属性需要别名

来自分类Dev

MySQL 获取:需要一些建议

来自分类Dev

需要一些提示和优化技巧

来自分类Dev

我需要一些帮助来优化python代码

来自分类Dev

需要一些关于 jQuery 代码优化的技巧

来自分类Dev

mysql选择而跳过一些行

来自分类Dev

SQL 查询 - 需要一些查询帮助

来自分类Dev

MySQL查询,用于从两个表中选择和计数一些字段

来自分类Dev

需要一些复杂的JOIN协助的是SQL查询

来自分类Dev

需要一些帮助在python中发送查询

来自分类Dev

需要在查询中进行一些修改

来自分类Dev

在格式化查询方面需要一些帮助

来自分类Dev

sqlite查询-选择喜欢一些值的数据

来自分类Dev

mysql查询需要优化

来自分类Dev

需要一些PHP逻辑来遍历一些mysql数据库结果

来自分类Dev

需要一些帮助的论坛代码mysql php

来自分类Dev

MySql:更新行,需要进行一些逻辑处理

来自分类Dev

需要一些建议

来自分类Dev

如何使用汇总从mysql查询中删除新行上不需要的一些数据

来自分类Dev

mysql-选择一些确切的值

来自分类Dev

Mysql查询只返回一些信息

来自分类Dev

MySQL查询导致一些空字段

来自分类Dev

优化一个需要 1 分钟执行的选择查询

来自分类Dev

MySQL查询从多个表中选择,显示所有来自表1 +一些数据来自表2

来自分类Dev

在一些优化添加零填充

来自分类Dev

关于优化器的一些知识

来自分类Dev

优化一些numpy / scipy代码