2011-05-18 32 views
2

由於數據被歸類爲int,十進制,文本(字符串),日期,枚舉,爲什麼mysql仍然需要將它們分類到更多組像文本被分爲char,varchar,text,tinytext等?我知道這會讓它變得更快,但是分成更多的團體和更快的團隊之間的關係是什麼?是什麼原因?爲什麼mysql有許多不同的字段類型?

對不起,我英文很差。

回答

1

那麼背後的主要原因是內存。查看地址是文本信息,名稱是文本信息,如果要存儲任何值,如yesno也是文本值,如果要從其中任何一個發送評論或發佈,則它也是text的值。所有這些值都需要不同的記憶。當你談論大系統時,內存是一個重要因素。例如,如果您爲所有文本信息設置了text類型,那麼這是非常糟糕的做法。所以mysql已經分類到不同的東西。如果你想存儲名稱,你可以使用varchar(50),如果你想存儲地址,你甚至可以使用varchar(255)。如果您想存儲帖子或評論和說明或任何可以使用的東西text。如果您想使用yesno之類的信息,您可以使用char。我希望你能理解。

+0

是的,我理解。我仍然想知道爲什麼mysql需要我們聲明字段長度而不是計算長度本身? Thx爲你的答案:) – 2011-05-18 06:14:00

1

字符串類型的變化數量是進度的標誌。在理想的世界中,舊的類型將被刪除,新的和改進的類型將取代它們。但是,在現實世界中,遺留兼容性需要字段類型,例如,對於期望它的應用程序,其行爲類似於20世紀60年代的COBOL字符串處理。因此,char(20)類型的焊盤帶有尾隨空格,可以像IBM鍵盤卡一樣工作。

把各種亞型想​​象成一組螺絲刀,一些小的,一些大的。每種都有適當的使用範圍。如果您正在製作懷錶,則不需要使用大螺絲刀。但是,如果應用程序是橋樑建設,那麼微型精密螺絲刀仍然沒有使用,而大型的螺絲刀則可以使用。數據庫就像那樣。

相關問題