SQL数据库:只使用字符串好吗?

时间:2017-12-02 12:58:36

标签: sql database

我目前正在开发一个拥有大量数据库列的学校项目。我想知道使用TEXT / String作为数据类型来存储数据库中的数据然后只是检索数据并在程序中根据需要将其转换为int,double或boolean是好的做法,或者我应该已经我在构建数据库时从一开始就选择适当的数据类型?我可以更容易地使用字符串,因为它可以轻松编辑。请让我知道你在想什么。谢谢。

1 个答案:

答案 0 :(得分:4)

您希望在数据库中使用正确的类型有几个原因

  • 内存效率:当您只想存储例如整数时存储为字符串会花费更多的数据。常规int可以以4个字节存储-2147483648到2147483647之间的任何数字,字符串每个字符需要1或2个字节,具体取决于编码,数据库,类型等(比较mysql intmysql char。你应该还要考虑SQL列的大小是固定的。
  • 转换成本:转换为字符串和从字符串转换需要更多行代码和CPU周期。
  • 精度损失,例如,如果将浮点数存储为字符串
  • 订单:对字符串编号进行排序可能与数字自然顺序不同,例如字符串“10”出现在“2”之前。

我还想象索引在适当的类型上会更有效。

如果由于某种原因你想在一个列中存储不同的类型,有些人可能会在数据库中使用字符串来表示数字等。可能仍然没有那么好的做法,因为它不能 - 想到更好的解决方案实践。