0

我有一个非常庞大的数据库(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 子句中的所有列使用索引,查询速度更快但只是一点点。

有没有人有任何帮助的想法来提高速度?

4

1 回答 1

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

索引这些列:

  1. 国家.country_id
  2. 锦标赛.country_id
  3. 比赛.id

并且更好地使用列名而不是 *。

于 2013-05-21T14:49:24.723 回答