Sql Order By - Varchar vs Integer

时间:2013-10-15 07:32:31

标签: sql complexity-theory time-complexity sql-order-by

与我的一位朋友谈论数据库结构,他说,对于电话号码,他用来创建整数属性并将它们直接转换为将从数据库中提取数据的代码(他将前面的数字加零)。除了可能有问题的方法外,我建议他使用varchar字段。

他说使用varchar的效率较低,因为:

  • 信息存储需要更多内存(这是真的)
  • 订购字段需要更多“时间”

我很困惑,因为我猜rdbms,所有优化,将在O(n log(n))或类似的事情中进行此类排序,无论数据类型如何。遗憾的是,挖掘互联网获取信息是无用的。

有人可以帮助我理解我在这里说的是否有意义?

谢谢。

1 个答案:

答案 0 :(得分:0)

RDBMS使用索引来优化排序(排序)。索引在存储中存储为B树,并且索引字段更大。因此,磁盘IO操作增加,因为数据很大。另一方面,O(n log(n))对于不同类型的数据是不同的。比较字符串和数字(​​整数)的语义是不同的,字符串的比较比整数更复杂。