[英]Is it good practice to keep VARCHAR column length to some large value to avoid any DB Upsert failures
我们的生产数据库中有电子商务产品表,其中图像 url 列为 VARCHAR(200)。 但有时图像 url 的大小会超过 200,这会导致插入/更新失败。
为避免这种情况,我可以将 VARCHAR 的长度保持在 1000 或 2000 之类的较大值吗? 这样做会影响我的查询性能吗?
另外我在我的应用程序中使用 Hibernate 连接到 Mariadb
因这些错误而失败
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
Caused by: java.sql.SQLException: Data too long for column 'url' at row 1
笔记
只需创建TEXT
列(最大 64KB)并希望您永远不会超过该列。
您将无法将该列包含在常规索引中。 但是您可能应该考虑使用FULLTEXT
和MATCH
进行搜索。
对于VARCHAR
,由于各种原因,这里有几个截止值:40、191、255、767、3072,也许还有其他。 取决于行格式、版本号、字符集等。其中一些数字是字节,一些是字符。
TEXT
和VARCHAR
每个都有一个短的(1-4 字节)“长度”字段加上数据所需的字节数。 这不应该是一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.