php 优化sql,php – 优化此SQL查询

这个SQL查询让我感到厌恶.我没有写它,但它是我们服务器问题的一个重要原因.我愿意将它分成多个查询并通过PHP进行一些处理(比如,RAND()).

$sql = "SELECT a.code,a.ad_id,a.position,a.type,a.image,a.url,a.height,a.width

FROM " . AD_TABLE ." a," . USER_GROUP_TABLE . " g

WHERE (a.max_views >= a.views OR a.max_views = '0')

AND (FIND_IN_SET(" .$forum_id. ",a.show_forums) > 0 OR a.show_all_forums = '1')

AND g.user_id = " . $user->data['user_id'] . "

AND FIND_IN_SET(g.group_id,a.groups)

AND FIND_IN_SET(" . $user->data['user_rank'] . ",a.ranks)

AND a.start_time < " . time() . "

AND a.end_time > " . time() . "

AND (a.clicks <= a.max_clicks OR a.max_clicks = '0')

ORDER BY rand()";

是的,粘贴之后我觉得很蠢…

编辑:以下是上述格式的示例查询“EXPLAIN”的结果,逗号分隔:

"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra"

1,"SIMPLE","g","user_id","3","const",6,"Using temporary; Using filesort"

1,"a","ALL","max_views","",10,"Using where"

它是

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值