在varchar数据类型列中存储文件名好吗?

时间:2016-08-17 02:05:20

标签: mysql sql-optimization

将文件名存储在varchar 数据类型列中吗?是否有其他方法可以处理您的软件文件,例如通过数字ID创建文件夹,只检查应用程序逻辑中的文件夹中是否存在文件?

谢谢!

1 个答案:

答案 0 :(得分:1)

我建议文件名应该是varchar。

拥有数字ID 对于mysql中的性能通常是一个很好的做法。例如, int 最大大小为 4 字节。但 varchar 最大大小达到 9-12 字节。 Varchar也使用不同的字符集,如utf等,这就是为什么(其他一些原因)需要更多的空间。

  

如果varchar是20个字符,而int是4,那么如果你   使用int,你的索引每页的节点数将是FIVE的五倍   磁盘上的索引空间...这意味着遍历索引会   需要五分之一的物理和/或逻辑读取。

两者都取决于您的数字ID长度文件名字符长度。而且,拥有数字ID可能会使情况复杂化。因为即使数值的微小更改可能会更改文件名,或者文件名的更改也可能会更改数值。

另外,请记住,在输入新文件名时,您应该编写脚本或执行某些操作。有些东西必须将文件名转换为数字ID。如果文件名始终保持相同,则可能是数字ID是一个不错的选择。

  

最后,我会说这一切都取决于你的应用程序,表的大小   (没有行),文件名长度,数字ID长度等。