SQL - varchar与int的性能

Vee*_*tav 1 mysql sql database sql-server oracle

我有一个primary key具有varchar数据类型的表.另一个表格foreign keyvarcharasatatype.

我正在join使用这对varchar数据类型进行声明.虽然我处理的行数很少(比如雷行),但它正在采取行动60ms.但是当最终部署系统时,它将有大约数千行.

我读到Performance of string comparison vs int join in SQL并得出结论,SQLQuery 的性能取决于DB它所处理的行数和行数.

但是当我处理大量数据时,它会有多重要吗?

我应该创建一个新的列number中的数据类型都将tablejointable减少由所花费的时间SQL查询?

Dav*_*dge 5

您应该为您所代表的数据使用正确的数据类型 - 任何可疑的理论性能增益都是必须处理数据转换的开销的次要因素.

根据这个问题,真的不可能说出这是什么,但大多数情况都是显而易见的.在不明显的情况下,您的数据元素由一组数字表示,但您不会将其视为数字 - 例如,电话号码.

你正在处理这种情况的线索是:

  • 必须保留的前导零
  • 没有对元素执行算术运算.
  • 执行字符串操作:例如."拿最后四个字"

如果是这种情况,那么您可能希望将"数字"存储为varchar.