描述如下:
我现在有一个这样的表,主要字段是
id 主键
score 分数
gamekind 游戏类型
数据量大概有300W条,我需要经常取每个游戏类型中对应的前N名的数据
应该怎么样最大化优化数据库
麻烦大家说说你们的想法
------解决方案--------------------
在这个游戏类型上加索引
------解决方案--------------------
- SQL code
SELECT ID,SCORE,gamekindFROM( SELECT rid=ROW_NUMBER() OVER(PARTITION BY gamekind ORDER BY SCORE DESC),* FROM #T) AS TWHERE rid<=N
------解决方案--------------------
300W 也叫海量数据
------解决方案--------------------
按游戏类型分区,按分数建对齐的分区索引
------解决方案--------------------
搞个索引玩玩
------解决方案--------------------
也就算个小型数据库吧
------解决方案--------------------
- SQL code
-- 建索引create index [索引名] on [表名](gamekind,score)-- 然后逐个游戏类型查前N名select top 10 * from [表名] where gamekind='[游戏类型]'
------解决方案--------------------
------解决方案--------------------
还真是不大。