Mysql 如何加速我的sql查询?
我有一个非常庞大的数据库(MySQL)7个表(每个表有1000000条记录),我使用非常简单的查询来调用以下信息: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
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
为这些列编制索引:
最好使用列名而不是*是否从服务器收到响应或出现超时错误?索引是什么样子的?例如,如果您的
matches
表中有列match\u id、match\u name、match\u date
和match\u name上的索引,match_date
那么从技术上讲,您在match_date
上有一个索引,但它没有完全优化。向我们显示表结构不要写入SELECT*FROM,请尝试写入字段的所有名称。还要避免插入子查询并使用联接