2012-09-17 52 views
1

我有2個表,相同的結構,相同的行,相同的數據,但第一個有更多的列(字段)。表列增加選擇語句執行時間

例如:

我請從兩者相同的3個字段(SELECT A,B,C來自MYTABLE1然後選擇A,B,C來自mytable2)

我試圖在100,000條記錄上運行這些查詢(對於每個表),但最後我得到相同的執行時間(0.0006秒) 您是否知道列的數量(以及最後一個表的大小是否大於其他)必須對查詢執行時間做些什麼?

回答

1

從邏輯上講,它會影響執行時間,如果包含更多列的表上的數據更大,您可能會看到差異。例如,表1:500mb,表2:40mb。 如果數據集索引不再適合內存,性能會下降。然後磁盤執行步驟。

1

這會影響執行時間,但我認爲列/行大小的線性增加會產生邊際效應。由於MySQL仍然需要處理/顯示額外的數據,因此無法實現零效果。

的關鍵點(在我看來)將選擇列和行,你需要選擇。

1

IMO。只選擇正確的列會影響傳送時間(從數據庫服務器到應用程序服務器)並影響內存,因爲應該存儲和傳輸更多的數據。

1

在你的例子中,你從表中選擇了相同的三列。有跡象表明,我能想到的地方有額外的列(但不選擇它們)就沒什麼/沒有影響幾個方面:

  1. 如果你要選擇的列索引,MySQL的贏得了」不得不從磁盤讀取底層的行。
  2. 如果新列是VARCHAR,我相信頁面大小將基本保持不變(因爲VARCHAR實際上是指針)。
  3. 如果新列很小(例如TINYINT只有1個字節)。

一般來說,更窄的表格會給你更好的表現。

如果您想嘗試一個示例,請在一些大型CHAR(而不是VARCHAR)中進行折騰,然後在測試查詢中選擇這些列。我預計會更糟糕。

希望有所幫助。