mysql - 如果我们定义的列长度超过要求会怎样?

标签 mysql indexing query-optimization

我有个 friend 告诉我,如果我们只使用 20 个字符,永远不要将 varchar 声明为 (255)。 INT 也一样。

性能方面,这是真的吗?我可以通过减小列的大小来提高性能吗?当我将列声明为 255 时究竟发生了什么?

最佳答案

在大多数情况下,较短的 VARCHAR 列不会提高性能。

其中一种情况会带来性能提升,如果您有一个 MEMORY 表 - 内存中的临时表,MySql 将为列的长度分配内存。

来自docs :

MEMORY tables use a fixed-length row-storage format. Variable-length types such as VARCHAR are stored using a fixed length.

关于mysql - 如果我们定义的列长度超过要求会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5226661/

相关文章:

mysql - 替代包含 max() 和 GROUP BY 的自连接以提高性能

php - 使用php遍历递归数据库表

Mysql - 解释键为空

以不同方式选择的Mysql复杂性

python - 使用 django 查询的内置方法

python - django.core.exceptions.ImproperlyConfigured : Error loading MySQLdb module: No module named 'MySQLdb'

mysql - 从两张表中取出数据sql

javascript - 当我不知道它们的位置时,如何从 JavaScript 中的较大字符串中删除一些字符串

python - 列表索引必须是整数,而不是 str

mysql COUNT() 行数太慢