gpt4 book ai didi

php - 第一次查询需要 5 秒以上

转载 作者:行者123 更新时间:2023-11-29 01:16:52 25 4
gpt4 key购买 nike

所以我有这个查询

SELECT a.`title`,a.`id`,a.`numvol`,a.`numepi`,a.`release_date`,
(SELECT COUNT(id) FROM `Release` r WHERE r.`article_id`=a.`id`) AS `num_rows`,
(SELECT COUNT(id) FROM `Article_views` av WHERE av.`article_id`=a.`id`) AS `num_rows2`
FROM `Article` a WHERE a.`type` = 'ani' ORDER BY a.`title` ASC

第一次加载最多需要 5 秒,如果我进行刷新,大约需要 0.001 秒,有没有办法统一加载时间?

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
1 PRIMARY a ALL NULL NULL NULL NULL 567 Using where; Using filesort
3 DEPENDENT SUBQUERY av ALL NULL NULL NULL NULL 5301 Using where
2 DEPENDENT SUBQUERY r ALL NULL NULL NULL NULL 11717 Using where

我尝试用 join 来做,但它根本不起作用,所以我放弃了这种方式......

解决方案

使用 barmar 查询。更好:)(和索引 -,-')

id  select_type     table          type     possible_keys   key         key_len     ref     rows    Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 536 Using temporary; Using filesort
1 PRIMARY a eq_ref PRIMARY PRIMARY 4 r.art.. 1 Using where
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 574 Using where; Using join buffer
3 DERIVED Article_views index NULL article_id 4 NULL 5301 Using index
2 DERIVED Release index NULL article_id 4 NULL 11717 Using index

感谢大家花时间和解决方案 :) 我想我需要重做这个旧项目的大部分内容啊 :)

最佳答案

试试这个查询:

SELECT a.`title`,a.`id`,a.`numvol`,a.`numepi`,a.`release_date`, `num_rows`, `num_rows2`
FROM `Article` a
JOIN (SELECT article_id, COUNT(*) AS num_rows
FROM Release
GROUP BY article_id) r
ON r.article_id = a.id
JOIN (SELECT article_id, COUNT(*) AS num_rows2
FROM Article_views
GROUP BY article_id) av
ON av.article_id = a.id
WHERE a.`type` = 'ani'
ORDER BY a.`title` ASC

根据我的经验,JOIN 比相关子查询更快。

为了提高性能,请确保您在 Release.article_idArticle_views.article_id 上有索引。

关于php - 第一次查询需要 5 秒以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com