Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 大型结果集的多重排序_Mysql - Fatal编程技术网

Mysql 大型结果集的多重排序

Mysql 大型结果集的多重排序,mysql,Mysql,我有一个很大的Mysql表(大约200万行)。我想在它上运行搜索,可能会匹配多达25k行(返回的结果将受到限制[例如每页25行])。我想做的是根据cetain标准对这些结果进行排序,并使用这些标准对结果进行排序 到目前为止,我的解决方案是创建一个脚本,遍历该表,并根据我的标准为每一行分配一个分数。每个结果都会根据它与我的理想结果的比较情况给予分数。然后,我可以在执行select时按该分数排序,而不是动态计算 我当时想,我希望该系统的其他用户能够设置自己的自定义评分标准。我的第一个想法是创建一个单

我有一个很大的Mysql表(大约200万行)。我想在它上运行搜索,可能会匹配多达25k行(返回的结果将受到限制[例如每页25行])。我想做的是根据cetain标准对这些结果进行排序,并使用这些标准对结果进行排序

到目前为止,我的解决方案是创建一个脚本,遍历该表,并根据我的标准为每一行分配一个分数。每个结果都会根据它与我的理想结果的比较情况给予分数。然后,我可以在执行select时按该分数排序,而不是动态计算

我当时想,我希望该系统的其他用户能够设置自己的自定义评分标准。我的第一个想法是创建一个单独的表,其中包含第一个表的行id、用户id和排名。但我认为这个表可能会非常大(每个用户有200万行)。因此,到目前为止,我正在考虑的备选方案有:

1) 使用单独的排名表

2) 使用特定于用户的排名表

3) 仓促计算

有人有过类似问题的经验吗?用户将实时搜索结果,因此我主要关心的是尽可能快地完成这部分过程


非常感谢

我更喜欢单独的表,因为您可以在重新计算时生成临时新表,并将临时表重命名为实际表。
这也可能有助于您以后绕过锁定问题…

谢谢,这是一个针对所有用户/级别的单独表吗?