Mysql 如何加速我的sql查询?

Mysql 如何加速我的sql查询?,mysql,indexing,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

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


有没有人有什么好主意可以成倍地提高速度?

最糟糕的要求似乎是:

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
为这些列编制索引:

  • countries.country\u id
  • 锦标赛。国家/地区
  • 锦标赛

  • 最好使用列名而不是*

    是否从服务器收到响应或出现超时错误?索引是什么样子的?例如,如果您的
    matches
    表中有列
    match\u id、match\u name、match\u date
    match\u name上的索引,match_date
    那么从技术上讲,您在
    match_date
    上有一个索引,但它没有完全优化。向我们显示表结构不要写入SELECT*FROM,请尝试写入字段的所有名称。还要避免插入子查询并使用联接