Heim  >  Artikel  >  Datenbank  >  Einführung in die Details zur Optimierung der MySQL-Abfrage-Batch-Einfügung und Batch-Aktualisierung

Einführung in die Details zur Optimierung der MySQL-Abfrage-Batch-Einfügung und Batch-Aktualisierung

黄舟
黄舟Original
2017-03-04 14:36:422194Durchsuche

Als ich kürzlich MySQL studierte, stieß ich auf das Problem der geringen Effizienz der Stapeleinfügung und Stapelaktualisierung von MySQL. Die Effizienz von MySQL selbst ist hier recht gut Methoden ohne Vergleich der Zeit wurde die Effizienz der tatsächlichen Testergebnisse erheblich verbessert.

Tabellenstruktur erstellen

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;

Abfrageoptimierung Das Szenario besteht darin, festzustellen, ob der Prüfungscode existiert

SELECT 1 FROM b_student WHERE examcode='10001'  limit 1;

Das Abfrageergebnis 1 bedeutet, dass es existiert, und das Ergebnis null bedeutet, dass es nicht existiert

Batch-Einfügungsoptimierung, Szenario-Batch-Einfügung von Studenteninformationen

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

Batch-Update-Optimierung, Szenario-Batch-Update von Studenteninformationen

Batch-Einfügung führt hier zwei Methoden ein (die Tabelle muss einen Primärschlüssel haben), und es gibt andere Methoden.

1. Die Methode „Ersetzen in“ aktualisiert eine oder mehrere Spalten basierend auf dem Primärschlüssel. Hinweis: Diese Methode löscht die Spalten außer ID und Name.

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

2. Einfügen in ... bei der Aktualisierungsmethode mit doppeltem Schlüssel, aktualisieren Sie die nach der Aktualisierung definierten Spalten entsprechend dem Primärschlüssel

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

Die beiden oben genannten Methoden sind bei Batch-Updates sehr effizient. Wählen Sie entsprechend der tatsächlichen Situation.

Das Obige ist die detaillierte Einführung in MySQL-Abfrage, Batch-Einfügung, Batch-Aktualisierung und Optimierung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn