怎么扩充数据库字段?

有一张表,是有无限层级结构的表.

本来这张表里面是有id和pid的.但是后期发现浏览的时候,需要额外的层级路径.

于是追加path字段.里面存着top.mid.bot...之类的上级结构路径.

这就需要对之前的数据进行修补,为旧数据生成path.

请问大家是怎么处理的?

旧数据大概有20万条.我是想一次性查出来,然后本地重构path字段,再统一更新回数据库.

交给同事做了.但是他的构造程序,做了一夜12小时了,连十万数据都没构造完...

所以请教下各位,你们都是怎么处理这种事的?

插眼,看看大家有什么好想法

补充一下,为其中一条构造path时,需要去找他的pid添加到path里面.然后再找pid的pid,添加进去,再找pid的pid的pid添加进去.直到没有pid.一条数据的path就算构造完了.再继续下一条.

一共20万条数据需要重新构造.

确实感觉效率不高.但12小时了,连十万都没构造完,是不是有点夸张了啊.

求更好的方案.

写个mysql函数去做遍历构造path,然后批量更新,不至于要10几个小时。做过类似的层级更新每一条记录完整层级路径,18w数据,批量更新大概用了3、4分钟。

就算是用程序遍历生成构造也不用这么长时间,估计是死循环了。

 

可以新建一个表,不知道你们是怎么重构的速度这么慢,但是用这个方法,你让他跑一个星期,肯定能搞完,然后到时候把新表改回来不就可以了吗