首页 >社区问答列表 >求大神指点如何用thinkphp5.1 处理大量mysql数据

求大神指点如何用thinkphp5.1 处理大量mysql数据

我这里有个需求, 

本地数据库(一个):

一个表user_local,

远程数据库(共两个库,五个表,)所有信息通过uid关联

一个数据库(user_data_a)中只有一个表user_basic,为所有用户的基本信息,

另一个数据库(user_data_b)中其它四个表分为两类,

一类(其中两个表,user_profile_active和user_profile_not_active)用来存放用户档案,一个表为活跃用户,另一个表为非活跃用户,

另一类表(另外两个表user_ext_info_active和user_ext_info_not_active)用来存放用户其它信息,一个表也是活跃用户,另一个表是非活跃用户,

例如,

user_basic中某个uid的记录如果不在user_profile_active,那么就在user_profile_not_active中,

如果不在user_ext_info_active中,那么就在user_ext_info_not_active中

理论上来说,active的对应active的,not_active的对应not_active的,

现在的需求是,以user_basic为主,去那两类表(共四个)中获取用户对应的信息的某几个字段,然后拼成一条记录,写入到本地user_local表中,大约有80多万条记录,球大神指点如何处理,才能避免在循环中查询数据库,才能不造成内存溢出,超时~~跪求呀

框架为thinkphp5.1


  • 殘留の回憶
  • 殘留の回憶    2019-06-27 22:46:041楼

    如果你mysql数据性能够强大,可以写联表操作,一条语句搞定,但的确很容易造成超时导致内存溢出,建议分开操作吧,这个没什么捷径一张表就80万数据如果这几张表都联起表来查询 数据大的可怕,还是老实点先操作完user_profile_active和user_profile_not_active这两张数据表,完成了再操作后面两个表user_ext_info_active和user_ext_info_not_active

    +1添加回复

  • 回复