gpt4 book ai didi

php - 使用 PHP 和 MySQL 优化排名页面

转载 作者:搜寻专家 更新时间:2023-10-30 23:23:09 24 4
gpt4 key购买 nike

我真的需要一些帮助来优化我网站上用于显示排名的表格。我已经阅读了很多关于如何优化查询以及如何正确使用索引的文章,但即使在实现了我认为可行的更改之后,也看不到什么改进。我的快速修复只是暂时只使用前 100,000 个排名(每天更新并存储在不同的表中)来提高速度,但我真的不喜欢这个选项。

所以我有一个存储用户信息的表,看起来像这样:

表'缓存':

id    (Primary key)
name
region
country
score

还有其他关于用户的变量被存储,但我认为它们在这里不相关,因为它们没有用于排名。

用户可以查看 3 个基本排名页面:

世界观:

SELECT cache name,region,country,score FROM cache ORDER BY score DESC LIMIT 0,26

区域 View :

SELECT name,region,country,score FROM cache WHERE region='Europe' ORDER BY score DESC LIMIT 0,26

和国家观点:

SELECT name,region,country,score FROM cache WHERE region='Europe' AND country='Germany' ORDER BY score DESC LIMIT 0,26

我已经尝试了几乎所有我能想到的索引组合来帮助减轻数据库的工作,虽然有些似乎有点帮助,但我找不到一个只会为 返回 26 行的索引地区和国家/地区查询(只需使用“分数”索引,世界排名就会飞速发展)。

我觉得我可能遗漏了一些基本的东西,非常感谢任何帮助!

一些额外信息:缓存表目前约为 920 兆字节,总行数略多于 800,000 行。如果您可以使用更多信息,请告诉我。

最佳答案

您的世界排名受益于得分索引,因为得分是查询中的唯一标准。它排序的逻辑顺序内置于查询中。所以这很好。

其他查询将受益于区域索引。然而,与@Matt 表示的类似,区域、国家和分数的综合指数可能是最好的选择。注意,key的三列要按照region, country, score的顺序。

关于php - 使用 PHP 和 MySQL 优化排名页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463844/

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