我有一个批处理作业,我在一张桌子上运行,我确信我可以写成一个准备好的语句。目前这一切都在 Java 中,毫无疑问,它的效率低于它可能的水平。对于这样的表:
CREATE TABLE thing (
`tag` varchar,
`document` varchar,
`weight` float,
)
我想创建一个新表,其中包含每个标签的前 N 个条目。目前我这样做:
create new table with same schema
select distinct tag
for each tag:
select * limit N insert into the new table
这需要执行查询以获取不同tag
的 s,然后选择该标签的顶部N
项目并插入它们……所有这些都非常低效。
是否有我可以用来执行此操作的存储过程(甚至是简单的查询)?如果方言很重要,我正在使用 MySQL。
(是的,我确实对我的索引进行了排序!)
干杯
乔