我有一個小型的社交網站,包括文章和評論。
我決定讓用戶用他們想要的任意數量的字符創建帖子,我認爲存儲這些東西的最佳數據類型是文本。
但是對於評論,在大多數情況下用戶只寫一行或幾行文字。這就是爲什麼我認爲我必須將註釋字符串長度限制爲3000或甚至6000個字符的最大值。
那麼,我應該使用什麼數據類型來進行評論?
Varchar or Text?字符串長度高達幾千字符的Varchar或文本數據類型
3
A
回答
4
有各種不同的地方VARCHAR
和TEXT
確實沒有區別。有些事情我說:
- 如果最大長度超過512個字符,去
TEXT
。 - 千萬不要使用
TINYTEXT
- 它只有相對於VARCHAR(255)
的負數。 - 請勿使用
VARCHAR(255)
;選擇一個合理的最大值,而不是255。(這是對複雜查詢中的臨時表進行的較小優化。) - 僅對真正固定長度的事物使用
CHAR
。在幾乎所有這樣的情況下,釘上CHARACTER SET ascii
(或latin1)。 (否則它會採取更多的空間比您預期。 - 使用
CHARACTER SET ut8mb4
。(例外越來越多的稀有。)
(對不起,我離題了。回到主題...)
我索引,InnoDB的行佈局(有4種不同的ROW_FORMATs
)等,VARCHAR(513)
將從TEXT
基本上沒有區別。
一個爲VARCHAR
的幾個論據是,它限制了店裏給出的長度。但如何往往是那個小鬼ortant?
0
根據您的要求,使用四種類型的TEXT中的一種[TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT]。 http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
1
VARCHAR列中的值是可變長度的字符串。長度可以指定爲0到65,535之間的值,這看起來足夠大以處理用戶的預期評論長度。
四種TEXT類型是TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT。可存儲用於每一數據類型的數據的最大量是約:
TINYTEXT 256個字節
TEXT 65,535字節〜64KB
MEDIUMTEXT 16777215字節〜16MB
LONGTEXT 4,294,967,295字節〜4GB
相關問題
- 1. varchar或文本的字符串長度只有360個字符
- 2. Postgresql varchar使用unicode字符長度或ASCII字符長度計數嗎?
- 3. 類型中的字符串長度
- 4. 數據VAlidation - 文本長度和字符類型
- 5. 如何根據文本/字符串的長度調整文本框的高度
- 6. 與最大長度字符串類型
- 7. WeakHashMap類型如長,Int或字符串
- 8. 字符串字符串Clob類型的字符太長
- 9. 字符串的長度比字符串的長度長
- 10. MVC EF字符串簽名圖像的長度/數據類型
- 11. php長度或計數字符串
- 12. SSIS XML源字符串數據類型長度錯誤
- 13. System.FormatException:'Base-64字符數組或字符串的長度無效。'
- 14. 確定DB2文本字符串長度
- 15. Postgres的字符串類型的兼容性:VARCHAR和字符
- 16. 數字符串長度c
- 17. 字符串[]長度計數
- 18. 類型爲字符串或數字
- 19. 在文本字符長度
- 20. sql數據庫 - 數字或字符串數據類型
- 21. MySQL VARCHAR like數據類型,帶最小和最大字符長度
- 22. 固定長度字符串的數字
- 23. SQL:查找數據字符串中的動態長度字符
- 24. H2數據庫中的長字符串數據類型
- 25. 對於基本64字符數組或字符串VB.net無效的長度
- 26. 給定長度的字符串的打字稿類型/接口
- 27. SQL子字符串使用charindex - somelength或字符串長度 - somelength
- 28. Excel宏將字段數據類型字符串更改爲長
- 29. 基於長度的聚類字符串
- 30. bash的字符串長度
Thnx在鏈接源代碼中寫道:「VARCHAR與表格存儲在一起,當大小合理時,VARCHAR會更快。」,那麼varchar(3000)被認爲是合理的大小? – BBeta