2010-08-04 34 views
10

任何基準,圖表什麼?它在網絡上的所有學術和理論。有沒有人有相當的證據證明CHAR比VARCHAR更快?

確定它不是第一次問這個問題,他們都說使用CHAR結果更快的選擇?我甚至讀過MySQL書籍,它們都一樣,但我還沒有遇到任何證明這一點的基準。

任何人都可以對此有所瞭解嗎?

+0

這不是,除非有固定長度的字符串,否則char更快。 – 2010-08-04 20:00:50

+0

沒有等待,然後本質上CHAR不能有變長的刺長度,因爲剩下的只是它的空白字符串的一部分,我不認爲「除非」部分將在這裏適用,因爲它已經是固定的。 - – 2010-08-05 03:40:24

回答

5

這是簡單的邏輯,以簡化我帶你去一個CSV文件的例子...

會是更快的在這條線

1231搜索; 231; 32345; 21312; 23435552 ; 1231; 1; 243; 211; 3525321; 44343112;

或這一個

12; 23; 43; 54; 56; 76; 54; 83; 45; 91; 28; 92

只要你定義長度正確CHAR應該更快因爲預定義格式有助於處理時間。

+0

因此,如果你所說的是真的,那麼除非例如「全名CHAR(20)」列中的所有全名都完全填充了20個字符的相關數據,否則使用CHAR沒有真正的速度增加。對?或者是因爲死空間被添加爲這些列上的蹤跡而自動發生? – 2010-08-04 19:18:46

+0

增加了空間 - 所以它總是正好20.這就是爲什麼它更快。 – 2010-08-04 19:20:42

+1

請注意,這僅適用於該行中的所有字段都是固定寬度的情況。 – Mchl 2010-08-04 19:32:41

0

我想你應該拿起手套,只是做。

4

問題是,事實並非如此。無論如何不是。

然而,如果表中只有只有固定寬度的字段,MySQL不需要執行一些計算來找出每個字段的開始。

此外,對於很短的字段也可能有所不同。如果比較CHAR(1)和VARCHAR(1),後者需要的內存是第一個的兩倍(單字節編碼)

相關問題