日期:2014-05-18  浏览次数:20472 次

跪求海量数据排序方案
描述如下:
我现在有一个这样的表,主要字段是
id 主键
score 分数
gamekind 游戏类型
数据量大概有300W条,我需要经常取每个游戏类型中对应的前N名的数据
应该怎么样最大化优化数据库
麻烦大家说说你们的想法

------解决方案--------------------
在这个游戏类型上加索引
------解决方案--------------------
SQL code
SELECT ID,SCORE,gamekind
FROM
(
   SELECT rid=ROW_NUMBER() OVER(PARTITION BY gamekind ORDER BY SCORE DESC),*
   FROM #T
) AS T
WHERE rid<=N

------解决方案--------------------
300W 也叫海量数据
------解决方案--------------------
按游戏类型分区,按分数建对齐的分区索引
------解决方案--------------------
搞个索引玩玩
------解决方案--------------------
也就算个小型数据库吧
------解决方案--------------------
SQL code

-- 建索引
create index [索引名] on [表名](gamekind,score)

-- 然后逐个游戏类型查前N名
select top 10 * from [表名] where gamekind='[游戏类型]'

------解决方案--------------------
探讨
描述如下:
我现在有一个这样的表,主要字段是
id 主键
score 分数
gamekind 游戏类型
数据量大概有300W条,我需要经常取每个游戏类型中对应的前N名的数据
应该怎么样最大化优化数据库
麻烦大家说说你们的想法

------解决方案--------------------
还真是不大。