MYSQL批量插入数据库实现语句性能分析
2017-11-27 21:27
323 查看
MYSQL批量插入数据库实现语句性能分析
假定我们的表结构如下代码如下 | |
CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCHAR( 50 ) NOT NULL, other_value VARCHAR( 50 ) NOT NULL ) |
代码如下 | |
INSERT INTO example (example_id, name, value, other_value) VALUES (100, 'Name 1', 'Value 1', 'Other 1'); |
代码如下 | |
INSERT INTO example (example_id, name, value, other_value) VALUES (100, 'Name 1', 'Value 1', 'Other 1'), (101, 'Name 2', 'Value 2', 'Other 2'), (102, 'Name 3', 'Value 3', 'Other 3'), (103, 'Name 4', 'Value 4', 'Other 4'); |
代码如下 | |
INSERT INTO example VALUES (100, 'Name 1', 'Value 1', 'Other 1'), (101, 'Name 2', 'Value 2', 'Other 2'), (102, 'Name 3', 'Value 3', 'Other 3'), (103, 'Name 4', 'Value 4', 'Other 4'); |
第一种方法:使用insert into 插入,代码如下:
代码如下 | |
$params = array('value'=>'50'); set_time_limit(0); echo date("H:i:s"); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); }; echo date("H:i:s"); |
第二种方法:使用事务提交,批量插入数据库(每隔10W条提交下)最后显示消耗的时间为:22:56:13 23:04:00 ,一共8分13秒 ,代码如下:
代码如下 | |
echo date("H:i:s"); $connect_mysql->query('BEGIN'); $params = array('value'=>'50'); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); if($i%100000==0){ $connect_mysql->query('COMMIT'); $connect_mysql->query('BEGIN'); } } $connect_mysql->query('COMMIT'); echo date("H:i:s"); |
则需要配置下MYSQL,在mysql 命令行中运行 :set global max_allowed_packet = 2*1024*1024*10;消耗时间为:11:24:06 11:25:06;
插入200W条测试数据仅仅用了1分钟!代码如下:
代码如下 | |
$sql= "insert into twenty_million (value) values"; for($i=0;$i<2000000;$i++){ $sql.="('50'),"; }; $sql = substr($sql,0,strlen($sql)-1); $connect_mysql->query($sql); |
相关文章推荐
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- MYSQL批量插入数据库实现语句性能分析
- SQL SERVER性能分析--死锁检测数据库阻塞语句 .
- 数据库性能分析语句
- SQL SERVER性能分析--死锁检测数据库阻塞语句<转>
- 数据库insert and update--查询是否主键存在和插入语句用一条sql来实现。
- SQL SERVER性能分析--死锁检测数据库阻塞语句
- sql server 性能分析--死锁检测数据库阻塞语句
- sql server性能分析--检测数据库阻塞语句
- 数据库执行语句性能分析
- SQL SERVER性能分析--死锁检测数据库阻塞语句
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 数据库性能优化分析案例---解决SQL语句过度消耗CPU问题