表递增ID做数据迁移,查询效率问题。

毕业设计工坊 课程设计 1

数据表描述:一张生产表, 数据量在 150W条数据,但是ID 递增已经到了 3000W了,因为中间一致被人DELETE 数据,但是ID一致在递增。现在就形成了 ID 1-50000是没有的, 50000-100000是在表里面的,后面也是这种断断续续的存在和不存在,但是数据递增还是3000W往后。 问题描述:查询效率特别低下,做数据迁移,已经将150W条数据 压缩到 10W条数据,但是效率还是低下,CPU使用率特别高。多个子系统使用 SELECT * FROM TABLE 语句。 结果猜测:SELECT *FROM 这种查询默认表里面 还是 3000W+ 数据 并不是实际 10W条数据,有没有什么好的方案 对这种生产库的表 做数据迁移?

回复

共2条回复 我来回复
  • 代码港湾
    这个人很懒,什么都没有留下~
    评论

    解决现有数据方法:把表数据全盘导出本地,移除ID列。重新insert生成一遍(要保证该ID号 没有被其他表所关联。否则这么整 就乱套了);

    解决后续新插入数据:改逻辑。弃用自增,新建列、使用自定义生成序列号。记得加索引

    0条评论
  • 源码驿站
    这个人很懒,什么都没有留下~
    评论

    不要select * from 建索引啥的 把这个表数据备份的其他表中,然后做个映射以保存老数据? 表分区啥的 id不要数字

    0条评论

发表回复

登录后才能评论