由於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. 在varchar字段上使用BETWEEN而不是數字字段?
- 4. 使sp_executesql採用varchar而不是nvarchar?
- 5. MySQL使用NULL/NOT NULL VARCHAR而不是TINYINT
- 6. MySQL:爲什麼varchar(254)而不是varchar(255)?
- 7. 使用varchar(max)創建列而不是varchar(8000)
- 8. 當我們必須在SQL Server中使用NVARCHAR/NCHAR而不是VARCHAR/CHAR嗎?
- 9. 使用JSON而不是MySQL?
- 10. 使用XML而不是MySQL
- 11. 什麼是在MySQL中使用文本而不是varchar類型的實際性能影響?
- 12. PostgreSQL:我們可以在PostgreSQL中使用「varchar」而不是「nvarchar」嗎?
- 13. 使用varchar或文本在mysql中的動態字段?
- 14. 在MySQL中使用UNION而不是OR?
- 15. 使用varchar字段的MySQL訂單
- 16. 當我使用變量而不是直接文本時,MYSQL腳本不運行
- 17. 數據庫設計 - 使用短而不是Varchar - 用於狀態字段
- 18. 如何防止在使用mysql的VARCHAR列中使用數字?
- 19. 是複合文字而不是文字?
- 20. 配置EF6使用varchar作爲默認值而不是nvarchar?
- 21. Liquibase生成bigint ID而不是varchar
- 22. 當我使用變量而不是字符串文字時,Perl方法失敗
- 23. Mysql的不正確查找使用UTF8 varchar字段
- 24. VARCHAR不允許任何字母(mySQL)
- 25. mysql選擇不要爲varchar字段woking
- 26. MySQL使用子查詢而不是JOIN
- 27. MySQL的使用Java而不是Android的
- 28. 更新WordPress使用mysqli而不是mysql
- 29. Heroku繼續使用Postgres而不是MySQL
- 30. 使用mysql而不是hsql java spring
當你需要超過65k字符。 :) – GordonM 2012-07-11 21:33:58
這應該是65k *字節*,不是字符,我認爲 – davek 2012-07-11 21:39:37
哦,是的。 65k字節。更新我的問題。 – enchance 2012-07-11 22:11:52