技术文摘
MySQL 批量插入优化 SQL 执行效率实例代码
2025-01-15 04:18:51 小编
MySQL 批量插入优化 SQL 执行效率实例代码
在开发过程中,经常会遇到需要向 MySQL 数据库批量插入数据的场景。如果处理不当,会导致 SQL 执行效率低下,影响系统性能。本文将通过实例代码展示如何优化 MySQL 批量插入的 SQL 执行效率。
我们来看常规的批量插入方式。假设我们有一个 students 表,包含 id、name、age 三个字段。
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);
常规的批量插入语句如下:
INSERT INTO students (name, age) VALUES ('张三', 20), ('李四', 22), ('王五', 25);
这种方式在数据量较小时尚可,但当数据量增大时,性能就会明显下降。因为每执行一次插入操作,数据库都需要进行一系列的检查、日志记录等操作,大量的小事务会增加系统开销。
接下来,我们采用优化后的方式。可以将多条数据合并成一个大的事务进行插入。
START TRANSACTION;
INSERT INTO students (name, age) VALUES ('张三', 20), ('李四', 22), ('王五', 25);
COMMIT;
通过将多条插入语句包含在一个事务中,数据库只需要进行一次事务相关的操作,大大减少了系统开销,提高了插入效率。
另外,还可以使用预处理语句来进一步优化。以 PHP 代码为例:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: ". $conn->connect_error);
}
// 预处理插入语句
$stmt = $conn->prepare("INSERT INTO students (name, age) VALUES (?,?)");
$data = [
['张三', 20],
['李四', 22],
['王五', 25]
];
foreach ($data as $row) {
$stmt->bind_param("si", $row[0], $row[1]);
$stmt->execute();
}
$stmt->close();
$conn->close();
?>
预处理语句不仅可以提高执行效率,还能有效防止 SQL 注入攻击。
通过合理运用事务和预处理语句等优化手段,能够显著提升 MySQL 批量插入的 SQL 执行效率,为系统的高效运行提供保障。在实际项目中,应根据具体的数据量和业务需求,选择最合适的优化方式。
- Python 库中操作系统级别模块 Psutil 解锁指南
- PyQt 助力构建专业外观的 GUI(上)
- 论栈于括号匹配及表达式求值的应用
- Rust 语言 2020 调查报告:Rust 难,生命周期尤甚
- 头条面试官:全面解析 JSONP
- 5 省市荣获国家信用荣誉授牌 浪潮智慧信用成果丰硕
- GitHub 将全站清理不必要的 Cookie 提示栏
- 11 月 GitHub 热门 JavaScript 开源项目
- Excel 大批量数据导入导出的优化之道
- 鸿蒙 OS 应用开发实战(四)
- 开源:全面解读阿里一站式图计算平台 GraphScope
- 2020 年编程语言年终排行榜大盘点
- 2020 征文:手表鸿蒙 HarmonyOS 小游戏之十二生肖 - 找到那只猪及上架
- 怎样写出更稳定的 Python 代码
- Python 与 R 语言的数据科学竞争:为何浪费时间于此