mysql 优化max_使用MAX()优化MySQL查询

抱歉,是否曾经有人问过这个问题,但是有什么办法,我可以优化此查询以使其运行得更快.每分钟大约需要2秒钟,虽然这不是一个很大的数目,但这是我网站上最慢的查询,而所有其他查询所用的时间少于0.5秒.

这是我的查询:

SELECT SQL_CALC_FOUND_ROWS MAX(images.id) AS maxID, celebrity.* FROM images

JOIN celebrity ON images.celeb_id = celebrity.id

GROUP BY images.celeb_id

ORDER BY maxID DESC

LIMIT 0,20

这里是一个解释:

1 SIMPLE celebrity ALL PRIMARY NULL NULL NULL 536 Using temporary; Using filesort

1 SIMPLE images ref celeb_id celeb_id 4 celeborama_ignite.celebrity.id 191

我不知如何进一步提高此查询的性能.我对MySQL不太熟悉,但是我确实知道它很慢,因为我正在对由MAX()创建的数据进行排序并且没有索引.我无法对此进行排序,因为它可以为我提供所需的结果,但是我还有其他方法可以防止它减慢查询速度吗?

谢谢.

解决方法:

如果您确实需要快速的解决方案-则不要在运行时执行此类查询.

只需在名人表中创建其他字段last_image_id并在上载新图像时对其进行更新(通过触发器或您的应用程序逻辑,无关紧要)

标签:max,mysql

来源: https://codeday.me/bug/20191202/2084755.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值