我在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 +整数+整数
答案 0 :(得分:0)
排序是一种排序。只有在两列或三列上有适当的索引时,您的查询才会有效。
缺乏这一点,钥匙尺寸的差异相对较小。使所有密钥的大小相同,可以获得一定的效率提升。并且,如果字符串字段长达数百个字节,那么它将产生影响。
您应该同时尝试数据并报告。我不担心性能上的差异。必须考虑其他更重要的事情。