首页
学习
活动
专区
圈层
工具
发布

MySQL优化
EN

Stack Overflow用户
提问于 2011-09-16 19:56:03
回答 3查看 104关注 0票数 1

我试图加快我的网站和它的主要问题,一个查询(下面的代码),几乎在所有页面上运行。更改限制会加快速度,但我需要使用LIMIT 99 :(在24秒时速度约为0.06秒。在100 ~ 0.105秒内。服务器限制:子查询(SELECT video_names.name...)无法更改为JOIN

代码语言:javascript
复制
SELECT `videos`.`name`, `videos`.`episodes`, `videos`.`is_ended`, `videos`.`id`, `videos`.`logo`, `videos`.`type`, `user_videos`.`episode`, 
(SELECT `video_names`.`name` 
 FROM (`video_names`) 
 WHERE `video_names`.`vid_id` = `videos`.`id` LIMIT 1) as alt_name
FROM (`videos`)
JOIN `user_videos` ON `user_videos`.`vid_id` = `videos`.`id`
WHERE `user_videos`.`user_id` = '1'
AND `user_videos`.`status` = '1'
GROUP BY `videos`.`id`
ORDER BY `last_change` desc
LIMIT 24  
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-18 17:44:48

我测试来自StackOverflow和其他来源的所有变体。最高速度:

  1. Query from Query (time)
  2. Answer "Couldn't that work" (time x2)
  3. Queries without sql_big_selects=1 (time X4.5)
  4. 使用sql_big_selects=1 (time x5和更慢的版本)查询
票数 0
EN

Stack Overflow用户

发布于 2011-09-16 20:24:07

这不能行得通吗?

代码语言:javascript
复制
SELECT
  `videos`.`name`
, `videos`.`episodes`
, `videos`.`is_ended`
, `videos`.`id`
, `videos`.`logo`
, `videos`.`type`
, `user_videos`.`episode`
, `video_names`.`name`
FROM `videos`
, `user_videos`
, `video_names`
WHERE TRUE
  AND `user_videos`.`user_id` = '1'
  AND `user_videos`.`status` = '1'
  AND `videos`.`id` = `user_videos`.`vid_id`
  AND `videos`.`id` = `video_names`.`vid_id`
GROUP BY `videos`.`id`
ORDER BY `last_change` DESC
LIMIT 24
;
票数 0
EN

Stack Overflow用户

发布于 2011-09-17 02:11:42

尝试此脚本

代码语言:javascript
复制
SELECT
    `v`.`name`
    , `v`.`episodes`
    , `v`.`is_ended`
    , `v`.`id`
    , `v`.`logo`
    , `v`.`type`
    , `u`.`episode`
    , `v`.`alt_name`
FROM `user_videos` `u`
JOIN (
    SELECT `videos`.*, `video_names`.`name` AS alt_name FROM `videos`
    JOIN `video_names` ON `video_names`.`vid_id` = `videos`.`id`
    GROUP BY `videos`.`id`
) `v` ON `u`.`vid_id` = `c`.`id`
WHERE `u`.`user_id` = '1'
AND `u`.`status` = '1'
ORDER BY `last_change` DESC
LIMIT 24;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7444299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档