【发布时间】:2010-11-15 01:18:33
【问题描述】:
我在包含超过 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 sql optimization mysql