在多门课程、书籍和工作中,我看到定义为VARCHAR(255)的文本字段类似于"短"文本的默认设置.除了a nice round number之外,还有什么好的原因让人如此频繁地 Select 255的长度呢?这是不是在过go 的某个时候有很好的理由(无论它是否适用于今天)时的一种抗拒呢?

当然,我意识到,如果你以某种方式知道绳子的最大长度,更严格的限制会更理想.但是,如果您使用的是VARCHAR(255),这可能表示您不知道最大长度,只知道它是一个"短"字符串.


注意:我发现了这个问题(varchar(255) v tinyblob v tinytext),它说VARCHAR(n)需要n+1字节的存储空间来存储n&lt=255、n+2字节的存储空间用于n>这是唯一的原因吗?这似乎有点武断,因为与VARCHAR(256)相比,您只能保存两个字节,而通过声明它为VARCHAR(253),您也可以轻松地保存另外两个字节.

推荐答案

过go ,在某些DBMS中,255个字符通常是VARCHAR的最大长度,如果您希望使用UTF-8并对列进行索引(由于索引长度限制),它有时仍然是有效的最大长度.

Database相关问答推荐

Golang Gorm和Gin无法创建具有关联的对象

我们可以出于不同目的在同一 postgres 数据库上同时进行物理和逻辑复制吗?

我应该为 Realm 中的每个实体定义主键吗?

repeating groups是什么意思?

带有字符串列的 SQL 之间的子句

Android - SQLite 数据库存储在哪里?

如果限制在本地机器上,最好使用 R 和 SQL

无法启动 MongoDB:Windows 中的系统错误 1067

将 XML 存储在数据库中是否不好?

用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询

xtradb vs innodb

在 SQL 数据库之间共享数据

单父实体的核心数据性能

在 Rails 中销毁/删除数据库

MySQL相对于其他数据库的缺点

SQL - 如何使用 MS SQL 2008 R2 备份数据库并导出为 MDF 文件

使用批处理文件执行一组 SQL 查询?

将查询限制为一条记录会提高性能吗

PHP PDO: error number' 00000' when query is correct

Rake aborted... table ‘users’ already exists