gpt4 book ai didi

php - 我该如何优化这个 MySQL 查询?

转载 作者:行者123 更新时间:2023-11-29 01:12:36 26 4
gpt4 key购买 nike

我在包含超过 300,000,000(是的,三亿)行的数据库上的 PHP 脚本中使用以下 MySQL 查询。我知道这是非常耗费资源的,运行这个查询需要很长时间。有谁知道我可以如何优化查询或以其他更快的方式获取信息?

我需要能够使用 1 到 15 之间的任何整数来代替 MID() 中的 14。我还需要能够在 LIKE 子句中匹配相同范围内的长度字符串。

表格信息:

games | longint, unsigned, Primary Key
win | bit(1)
loss | bit(1)

示例查询:

SELECT MID(`game`,14,1) AS `move`,
COUNT(*) AS `games`,
SUM(`win`) AS `wins`,
SUM(`loss`) AS `losses`
FROM `games`
WHERE `game` LIKE '1112223334%'
GROUP BY MID(`game`,1,14)

预先感谢您的帮助!

最佳答案

首先,在游戏领域有一个索引......:)

查询看起来简单明了,但它隐藏了可能需要更改数据库设计的事实。

在这种情况下,我总是更喜欢维护一个包含聚合数据的字段,无论是每天、每个用户还是每个其他轴。这样您就可以有一个日常任务来汇总相关数据并将其保存在数据库中。

如果你确实经常调用这个查询,你应该使用降低插入效率的原则来提高检索效率。

关于php - 我该如何优化这个 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199903/

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