我有一个非常庞大的数据库(MySQL)7个表(每个1000000个记录)我使用非常简单的查询来调用如下信息:
select * from matches where match_date='$date'
SELECT * FROM countries WHERE country_id IN (SELECT country_id FROM tournaments WHERE id='$id')
SELECT * FROM tournaments WHERE id='$id'
我对where子句中的所有列使用索引,查询速度更快,但只是一点点。
是否有人有任何帮助想法以指数方式提高速度?
答案 0 :(得分:1)
最糟糕的要求似乎就是这个:
SELECT
*
FROM
countries
WHERE
country_id IN (
SELECT
country_id
FROM
tournaments
WHERE
id='$id')
尝试使用它:
SELECT
countries.*
FROM
countries
INNER JOIN
tournaments
ON
countries.country_id=tournaments.country_id
AND
tournaments.id=$id
索引这些列:
最好使用列名而不是*。