在varchar列上的SQL中排序

时间:2018-04-24 00:58:30

标签: sql postgresql

我在POSTGRES数据库的活动表中有以下列:

EMPLOYEE_ID integer,      => unique integers
DATE bigint,              => stores epoch values     
ACTIVITY_ID varchar(10),  => stores unique character values
ACTIVITY_TYPE_ID integer  => values 1 to 5

可能有多个记录具有相同的DATE值。我的问题是哪一个会更有效率:

1. select * from activities order by DATE desc, ACTIVITY_ID

2. select * from activities order by DATE desc, ACTIVITY_TYPE_ID, EMPLOYEE_ID

首先使用bigint + varchar进行排序

第二个使用bigint +整数+整数

1 个答案:

答案 0 :(得分:0)

排序是一种排序。只有在两列或三列上有适当的索引时,您的查询才会有效。

缺乏这一点,钥匙尺寸的差异相对较小。使所有密钥的大小相同,可以获得一定的效率提升。并且,如果字符串字段长达数百个字节,那么它将产生影响。

您应该同时尝试数据并报告。我不担心性能上的差异。必须考虑其他更重要的事情。