开启事务处理插入多条数据 速度也可以

echo '开始时间'.date('H:i:s').PHP_EOL;
$db = Yii::$app->db;
$transaction = $db->beginTransaction();
for($i = 1; $i < 250001; $i++) {
$db->createCommand("update up set uin = $i, name = 'ggggg' where id = $i;")->execute();
}
$transaction->commit();
echo '结束时间'.date('H:i:s').PHP_EOL;

转载于:https://www.cnblogs.com/a-flydog/p/5708064.html

在Java中使用事务可以将多个SQL操作合并为一个批处理,从而提高效率和数据的一致性。以下是一个简单的示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class TxtToMysql { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/testdb"; String user = "root"; String password = "123456"; String sql = "INSERT INTO mytable (col1, col2, col3) VALUES (?, ?, ?)"; try (Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement pstmt = conn.prepareStatement(sql)) { conn.setAutoCommit(false); // 关闭自动提交事务 BufferedReader br = new BufferedReader(new FileReader("data.txt")); String line; while ((line = br.readLine()) != null) { String[] data = line.split(","); pstmt.setString(1, data[0]); pstmt.setString(2, data[1]); pstmt.setString(3, data[2]); pstmt.addBatch(); // 添加批处理 } pstmt.executeBatch(); // 执行批处理 conn.commit(); // 提交事务 br.close(); } catch (SQLException | IOException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们通过`conn.setAutoCommit(false)`方法关闭了自动提交事务,然后使用`pstmt.addBatch()`方法将每条插入语句添加到批处理中。在while循环结束后,我们调用了`pstmt.executeBatch()`方法来执行批处理,最后使用`conn.commit()`方法提交事务。这样,所有的插入操作就会被合并为一个批处理,从而提高了效率和数据的一致性。如果在批处理执行过程中发生异常,可以使用`conn.rollback()`方法回滚事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值