我正在做的那一刻:
cat routes.csv | while read a b; do
echo "... changing route on account $a to $b"
sqlplus -s $user/$pass@$db <<EOF
UPDATE customers SET delivery_route = '$b' WHERE customer_no = '$a';
commit;
quit;
EOF
echo "... done"
echo " "
done
这会为它处理的每一行创建一个新的SQL连接,并且我有500多个需要更新的帐户。
打开新的SQL连接,运行所有更新并关闭是否会更快?如果是这样,我该怎么做?
答案 0 :(得分:0)
cat routes.csv | while read a b; do
echo "UPDATE customers SET delivery_route = '$b' WHERE customer_no = '$a';"
done | sqlplus -s $user/$pass@$db
将使用单个mysql客户端进程,单个连接和单个事务,因此它将比为每个条目分配不同的进程更快