由於VARCHAR
可以有65K字節的現在,那麼當應TEXT
可以用來代替VARCHAR
?
40
A
回答
57
長VARCHAR
以與/BLOB
字段相同的方式存儲在InnoDB
中。
從存儲前瞻性BLOB,TEXT爲 以及LONG VARCHAR由Innodb的處理相同 方式。這就是爲什麼Innodb 手冊稱之爲「長列」而不是BLOB的 。
除非你需要索引這些列(在這種情況下VARCHAR
更快),沒有理由使用VARCHAR
在TEXT
長田 - 有在MySQL
調整一些發動機特定的優化根據長度進行數據檢索,並且應該使用正確的列類型來利用這些數據。
如果您使用MyISAM
,有關該主題的深入討論是here。
TEXT
和BLOB
存儲從桌子上與該表只是具有一個指針的實際存儲的位置。
VARCHAR
與表格內嵌存儲。當尺寸合理時,VARCHAR
會更快。
根據this test,VARCHAR
大約是文本的三倍。
4
文本應該用於非常長的不確定長度的字符串。而且,返回TEXT字段的查詢往往比它們的VARCHAR對應項慢得多。
+0
在我的數據庫中,我有一個名爲Description的列。數據類型應該是VARCHAR還是TEXT?我不確定描述數據會持續多長時間,但我計劃在前端添加一個字數限制,以便它具有最大長度。 – codeinprogress 2017-02-21 05:24:34
相關問題
- 1. 在MySQL中使用varchar而不是日期字段類型
- 2. MySQL:爲什麼使用VARCHAR(20)而不是VARCHAR(255)?
- 3. MySQL使用NULL/NOT NULL VARCHAR而不是TINYINT
- 4. 使sp_executesql採用varchar而不是nvarchar?
- 5. MySQL:爲什麼varchar(254)而不是varchar(255)?
- 6. 當我們必須在SQL Server中使用NVARCHAR/NCHAR而不是VARCHAR/CHAR嗎?
- 7. 使用JSON而不是MySQL?
- 8. 什麼是在MySQL中使用文本而不是varchar類型的實際性能影響?
- 9. 使用varchar或文本在mysql中的動態字段?
- 10. 當我使用變量而不是直接文本時,MYSQL腳本不運行
- 11. 數據庫設計 - 使用短而不是Varchar - 用於狀態字段
- 12. 是複合文字而不是文字?
- 13. 當我使用變量而不是字符串文字時,Perl方法失敗
- 14. 使用mysql而不是hsql java spring
- 15. 使用MySQL而不是MySQLi的問題
- 16. Char vs Varchar當不總是填充
- 17. 如何返回varchar字符串而不是null與彙總?
- 18. mysql與數字排序varchar
- 19. MySQL的排序VARCHAR字段
- 20. 在MySQL中使用時間而不是字符串CURRENT_DATE是個好主意嗎?
- 21. 當使用一個類而不是一個字典的
- 22. 使用MySql獲取僅在varchar數據字段中的日期
- 23. Magento產品名稱作爲文本而不是varchar
- 24. matplotlib使用文本而不是數字在y蜱
- 25. 在Google地圖上使用文字而不是標記
- 26. 在諾基亞使用文字而不是標記HERE地圖
- 27. 如何插入圖片而不是在Javascript中使用文字?
- 28. 在字節流而不是文件上使用TinyXML
- 29. 在Switch語句中使用文字而不是變量? Java
- 30. Mysql返回*****而不是數字
當你需要超過65k字符。 :) – GordonM 2012-07-11 21:33:58
這應該是65k *字節*,不是字符,我認爲 – davek 2012-07-11 21:39:37
哦,是的。 65k字節。更新我的問題。 – enchance 2012-07-11 22:11:52