如何加快我的SQL查询?

时间:2013-05-21 13:14:41

标签: mysql indexing

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

是否有人有任何帮助想法以指数方式提高速度?

1 个答案:

答案 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

索引这些列:

  1. countries.country_id
  2. tournaments.country_id
  3. tournaments.id
  4. 最好使用列名而不是*。