我刚刚在ORDER语句中遇到了大约5个不同列的SQL查询,这是一个很好的做法,它如何与性能相结合?
答案 0 :(得分:4)
列数不是很重要。最重要的部分是,订单是否匹配和索引,以及数据库引擎是否能够识别并正确使用索引。但是,当然有一些区别。主键通常比其他索引快得多,因为其他索引之后需要进行主键查找,并且索引单个整数字段的性能比索引字符串字段要好得多。
关于如何构建数据库,有几种宗教。通常,您可以通过将整数用作主键来最小化数据量,但企业中的许多大型数据库在主键中使用多个字符串字段。可能有几个原因,但性能通常不是其中之一。
答案 1 :(得分:1)
对5个或更多列进行排序不是良好实践的问题,而是关于业务规则:您是否需要它。如果必须排序,请尝试优化它。
一些一般步骤:
首先,检查目标数据库的执行计划。
如果表现至少是“可以忍受的”,那么你就完成了。
其他:
答案 2 :(得分:0)
如果业务要求规定结果按五列排序,那么唯一要回答的问题是,假设至少涉及客户端和服务器,是在哪里执行排序?
所以我猜这个关于良好实践的问题的任何答案都会有很大的“依赖”。
至于性能,如果要求是排序,性能是一个问题,那么再看看是否有可能在远离服务器的情况下进行排序。