Home > Database > Mysql Tutorial > MySQL query batch insert batch update optimization details introduction

MySQL query batch insert batch update optimization details introduction

黄舟
Release: 2017-03-04 14:36:42
Original
2224 people have browsed it

When I was studying mysql recently, I encountered the problem of low efficiency of mysql batch insertion and batch update. I have been using sqlserver before, and the efficiency of mysql itself is quite good. Here I will record the efficiency improvement methods without comparing the time. , the efficiency of actual test results has been greatly improved.

Create table structure

1 DROP TABLE IF EXISTS `b_student`;
2 CREATE TABLE `b_student` (
3   `id` int(11) NOT NULL AUTO_INCREMENT,
4   `examcode` varchar(20) CHARACTER SET gbk NOT NULL DEFAULT '',
5   `stucode` varchar(20) CHARACTER SET gbk NOT NULL DEFAULT '',
6   `name` varchar(20) CHARACTER SET gbk NOT NULL DEFAULT '',
7   PRIMARY KEY (`id`)
8 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Copy after login

Query optimization, scenario It is to determine whether the examcode exists

SELECT 1 FROM b_student WHERE examcode='10001'  limit 1;
Copy after login

The query result 1 means it exists, and the result null means it does not exist

Batch insertion optimization, scenario batch insertion of student information

INSERT INTO `b_student` (`examcode`,`stucode`,`name`) VALUES('10001','10001','张三'),('10002','10002','李四');
Copy after login

Batch update optimization, scenario batch update Student information

Batch insertion here introduces two methods (the table is required to have a primary key), and there are other methods.

1. The replace into method updates a certain column or columns based on the primary key. Note: This method will clear the columns except id and name.

replace into b_student (id,name) values (1,'张三丰'),(2,'李思思');
Copy after login

2. Insert into ...on duplicate key update method, update the columns defined after update based on the primary key

insert into b_student (id,stucode) values (1,'20001'),(2,'20002') on duplicate key update stucode=values(stucode);
Copy after login

The above two methods are very efficient in batch updates. Choose according to the actual situation.

The above is the detailed introduction of MySQL query, batch insertion, batch update and optimization. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template