我有这个查询没有完成(我认为服务器内存不足)
SELECT fOpen.*, fClose.*
FROM (
SELECT of.*
FROM fixtures of
JOIN (
SELECT MIN(id) id
FROM fixtures
GROUP BY matchId, period, type
) ofi ON ofi.id = of.id
) fOpen
JOIN (
SELECT cf.*
FROM fixtures cf
JOIN (
SELECT MAX(id) id
FROM fixtures
GROUP BY matchId, period, type
) cfi ON cfi.id = cf.id
) fClose ON fClose.matchId = fOpen.matchId AND fClose.period = fOpen.period AND fClose.type = fOpen.type
这是它的解释:
如果我分别运行它们,这两个子查询“of”和“cf”大约需要 1.5 秒才能运行。
'id' 是一个 PRIMARY INDEX 并且有一个名为 'matchPeriodType' 的 BTREE INDEX 具有按该顺序排列的这 3 列。
更多信息:MySQL 5.5,512MB 的服务器内存,表有大约 40 万条记录。