小编cbr*_*lle的帖子

如何优化MASSIVE MySQL表上计算列的ORDER BY

我有一个非常大(超过80万行)的非规范化MySQL表.简化的架构如下所示:

+-----------+-------------+--------------+--------------+
|    ID     |   PARAM1    |   PARAM2     |   PARAM3     |
+-----------+-------------+--------------+--------------+
|    1      |   .04       |    .87       |    .78       |
+-----------+-------------+--------------+--------------+
|    2      |   .12       |    .02       |    .76       |
+-----------+-------------+--------------+--------------+
|    3      |   .24       |    .92       |    .23       |
+-----------+-------------+--------------+--------------+
|    4      |   .65       |    .12       |    .01       |
+-----------+-------------+--------------+--------------+
|    5      |   .98       |    .45       |    .65       |
+-----------+-------------+--------------+--------------+

我试图看看是否有一种优化查询的方法,其中我将权重应用于每个PARAM列(权重在0和1之间),然后将它们平均得出计算值SCORE.然后我想ORDER BY计算出的SCORE列.

例如,假设PARAM1的权重为.5,PARAM2的权重为.23,PARAM3的权重为.76,您最终会得到类似于:

SELECT ID, ((PARAM1 * .5) + (PARAM2 * .23) + (PARAM3 * .76)) / 3 …
Run Code Online (Sandbox Code Playgroud)

mysql sql-order-by query-optimization

13
推荐指数
1
解决办法
4603
查看次数

标签 统计

mysql ×1

query-optimization ×1

sql-order-by ×1