gpt4 book ai didi

mysql - Rails 应用程序中 mysql 查询性能缓慢

转载 作者:行者123 更新时间:2023-11-30 00:46:05 25 4
gpt4 key购买 nike

我在 mysql 中有三个表用于 Rails 应用程序:

  • stories(id, title, Summary, hotness) => 有 217754 条记录
  • tags(id, name) => 有 25123 条记录
  • taggings(story_id, tag_id) => 有 800751

这是来自 Rails 的日志:

故事加载(14300.8ms)

SELECT `stories`.*
FROM `stories` INNER JOIN
`taggings`
ON `taggings`.`story_id` = `stories`.`id` INNER JOIN
`tags` ON `tags`.`id` = `taggings`.`tag_id`
WHERE (tags.id = 3141)
ORDER BY hotness
LIMIT 26 OFFSET 0

需要超过 14 秒。我确信故事、标签和标记中的所有索引都没有问题。另外我要说的是,热度总是在变化的。

这与 MySql 的可扩展性有关吗?

PS:解释结果 => https://gist.github.com/iCEAGE/8622705

最佳答案

您可以简化查询,因为您没有使用 tags 表中的任何内容:

SELECT s.*
FROM `stories` s INNER JOIN
`taggings` t
ON t.`story_id` = s
WHERE t.id = 3141
ORDER BY s.hotness
LIMIT 26 OFFSET 0;

如果这没有帮助,那么这个有多大?

SELECT count(*)
FROM `stories` s INNER JOIN
`taggings` t
ON t.`story_id` = s
WHERE t.id = 3141;

关于mysql - Rails 应用程序中 mysql 查询性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355232/

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