2012-03-13 97 views
1

我有一个巨大的表,但我知道在大多数情况下,只有一小部分数据用于查询。有没有办法让MySQL只查找这个小部分?在这种情况下“查看”​​帮助吗?优化MySQL数据库查询

+1

没有看法可能无助于表现。尝试使用where子句和适当的索引。而任何小于terrabyte大小的桌子都不是很大! – HLGEM 2012-03-13 20:24:30

+0

有1.7亿条记录,但通常只有200万条记录。对于汇总这200万条记录的查询,大约需要10秒。有没有一种方法来优化? – DrXCheng 2012-03-13 20:27:56

+1

我不能说没有看到查询和表结构和索引和解释计划。 – HLGEM 2012-03-13 20:29:07

回答

0

多列

如果你有很多列,请务必只在SELECT语句名中使用的列。这允许MySQL跳过未使用的列,而不是返回您将不会使用的值。

因此,而不是下面的查询:

SELECT * 
FROM users 

使用这种类型的查询:

SELECT id, last_name, first_name 
FROM users 

许多行

如果你有很多行,指标添加到要使用WHERE子句过滤的列。例如:

SELECT id, last_name, first_name 
FROM users 
WHERE last_name = 'Smith' 

以上查询选择姓氏为'Smith'的所有用户记录的特定列。

如果您在last_name列上有一个索引,MySQL将能够非常快地找到符合WHERE子句中条件的记录。