2012-03-13 90 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子句中條件的記錄。