This topic created in 4736 days ago, the information mentioned may be changed or developed.
假定有一张user表,因为字段太多,打算将user表中的各个字段拆分到user_account、user_information、user_status等若干张表。
现在要做的就是将原来user表里的数据,导入到这些新表中去。但是由于原来user表内数据太多,如果每张新表都单独执行导入sql的话,那么每次执行都要遍历一次user表,感觉效率很低。有没有办法可以直接取完一条user的数据后,直接插入新的N张表中,这样只遍历一次user表就可以完成?
9 replies • 1970-01-01 08:00:00 +08:00
 |
|
1
wayn3h0 Jun 19, 2013 1
1. 遍历一次 执行三个命令 2. 遍历三次 每次执行一个命令
你自个不是说的很明白了么。。。不明白你的疑问在哪里啊在哪里
|
 |
|
2
likuku Jun 19, 2013 1
「有没有办法可以直接取完一条user的数据后,直接插入新的N张表中,这样只遍历一次user表就可以完成?」
写程序实现嘛,这种指望依靠MYSQL自身的SQL语言来搞不太现实。
|
 |
|
3
xiaogui Jun 19, 2013 1
1、写程序,分别生成需导至 user_account、 user_information、 user_status等表的 sql 语句; 2、然后分别执行各表若干条 sql 语句。比如将需导入 user_account 表的每 1000 sql 语句导入一次,可以有效降低 sql 语句执行时间。 另考虑中间中断问题,可以使用事务。
|
 |
|
4
msg7086 Jun 20, 2013 1
如果是myiasm的话可以file copy+drop column
|
 |
|
5
rpx Jun 20, 2013 1
找个etl工具几下搞定。 推荐kettle
|
 |
|
6
Xrong Jun 20, 2013 1
用php全部读取出来,然后做判断插入各自表中?渣思路路过...
|
 |
|
7
revlis7 Jun 20, 2013
本来想用一条SQL搞定N张表
看来只有用另外的脚本去跑了
thanks anyway.
|
 |
|
9
ldehai Jun 21, 2013
楼主想多了,这种一次性的任务不用这么担心效率吧,慢就慢点。有想的功夫都导完了。
|