Syntax für eine einzelne Tabelle:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
Syntax für mehrere Tabellen:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*] ...] FROM table_references [WHERE where_definition]
oder:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*] ...] USING table_references [WHERE where_definition]
Einige Zeilen in tbl_name erfüllen die von where_definition angegebenen Anforderungen Zustand. Mit DELETE werden diese Zeilen gelöscht und die Anzahl der gelöschten Datensätze zurückgegeben.
Wenn Sie eine DELETE-Anweisung ohne WHERE-Klausel schreiben, werden alle Zeilen gelöscht. Wenn Sie die Anzahl der gelöschten Zeilen nicht wissen möchten, gibt es einen schnelleren Weg, nämlich die Verwendung von TRUNCATE TABLE.
Wenn die von Ihnen gelöschte Zeile den Maximalwert für die Spalte AUTO_INCREMENT enthält, wird dieser Wert in der BDB-Tabelle wiederverwendet, jedoch nicht in der MyISAM-Tabelle oder der InnoDB-Tabelle. Wenn Sie DELETE FROM tbl_name (ohne WHERE-Klausel) im AUTOCOMMIT-Modus verwenden, um alle Zeilen in einer Tabelle zu löschen, wird die Reihenfolge für alle Tabellentypen (außer InnoDB und MyISAM) neu angeordnet.
Für MyISAM- und BDB-Tabellen können Sie die sekundäre Spalte AUTO_INCREMENT in einem mehrspaltigen Schlüsselwort angeben. In diesem Fall wird der am Anfang der Sequenz entfernte Wert erneut verwendet, auch für MyISAM-Tabellen.
DELETE-Anweisung unterstützt die folgenden Modifikatoren:
· Wenn Sie LOW_PRIORITY angeben, wird die Ausführung von DELETE verzögert, bis kein anderer Client diese Tabelle liest.
· Wenn Sie bei MyISAM-Tabellen das Schlüsselwort QUICK verwenden, führt die Speicher-Engine die Indexendknoten während des Löschvorgangs nicht zusammen, was einige Arten von Löschvorgängen beschleunigen kann.
· Während des Löschvorgangs von Zeilen bewirkt das Schlüsselwort IGNORE, dass MySQL alle Fehler ignoriert. (Fehler, die während der Analysephase auftreten, werden wie gewohnt behandelt.) Fehler, die aufgrund der Verwendung dieser Option ignoriert werden, werden als Warnungen zurückgegeben.
In MyISAM-Tabellen werden gelöschte Datensätze in einer verknüpften Liste beibehalten und nachfolgende INSERT-Vorgänge verwenden den alten Datensatzspeicherort wieder. Um ungenutzten Speicherplatz wiederzuverwenden und die Dateigröße zu reduzieren, verwenden Sie die Anweisung OPTIMIZE TABLE oder die Anwendung myisamchk, um die Tabelle neu zu organisieren. OPTIMIZE TABLE ist einfacher, aber myisamchk ist schneller.
Der QUICK-Modifikator beeinflusst, ob die Indexendknoten während des Löschvorgangs zusammengeführt werden. DELETE QUICK ist am nützlichsten, wenn der Indexwert für die gelöschte Zeile durch einen ähnlichen Indexwert aus einer später eingefügten Zeile ersetzt wird. In diesem Fall werden die durch die gelöschten Werte entstandenen Lücken wiederverwendet.
Wenn der nicht vollständige Indexblock einen bestimmten Bereich von Indexwerten umfasst, erfolgt eine neue Einfügung. DELETE QUICK hat keine Auswirkung, wenn der gelöschte Wert zu einem unterfüllten Indexblock führt. In diesem Fall kann die Verwendung von QUICK dazu führen, dass Speicherplatz in ungenutzten Indizes verschwendet wird. Das Folgende ist ein Beispiel für diese Situation:
1. Erstellen Sie eine Tabelle, die die indizierte AUTO_INCREMENT-Spalte enthält.
2. Fügen Sie viele Datensätze in die Tabelle ein. Jede Einfügung erzeugt einen Indexwert, der zum oberen Ende des Index hinzugefügt wird.
3. Verwenden Sie DELETE QUICK, um eine Gruppe von Datensätzen am unteren Ende der Spalte zu löschen.
In diesem Fall werden die Indexblöcke, die sich auf die gelöschten Indexwerte beziehen, unterfüllt, aber aufgrund der Verwendung von QUICK werden diese Indexblöcke nicht mit anderen Indexblöcken zusammengeführt. Beim Einfügen neuer Werte bleiben diese Indexblöcke unterfüllt, da die neuen Datensätze keine Indexwerte innerhalb des gelöschten Bereichs enthalten. Selbst wenn Sie später DELETE verwenden, ohne QUICK einzubeziehen, bleiben diese Indexblöcke weiterhin ungefüllt, es sei denn, einige der gelöschten Indexwerte befinden sich zufällig in oder neben diesen ungefüllten Blöcken. Wenn Sie in diesen Fällen ungenutzten Indexspeicherplatz wiederverwenden möchten, verwenden Sie OPTIMIZE TABLE.
Wenn Sie vorhaben, viele Zeilen aus einer Tabelle zu löschen, kann die Verwendung von DELETE QUICK in Verbindung mit OPTIMIZE TABLE die Arbeit beschleunigen. Dadurch wird eine Neuindizierung durchgeführt, anstatt eine große Anzahl von Indexblock-Zusammenführungsvorgängen durchzuführen.
MySQLs einzige LIMIT row_count-Option für DELETE wird verwendet, um dem Server die maximale Anzahl von Zeilen mitzuteilen, die gelöscht werden können, bevor der Steuerbefehl an den Client zurückgegeben wird. Diese Option wird verwendet, um sicherzustellen, dass eine DELETE-Anweisung nicht zu viel Zeit in Anspruch nimmt. Sie können die DELETE-Anweisung einfach wiederholen, bis die Anzahl der relevanten Zeilen kleiner als der LIMIT-Wert ist.
Wenn die DELETE-Anweisung eine ORDER BY-Klausel enthält, werden Zeilen in der in der Klausel angegebenen Reihenfolge gelöscht. Diese Klausel funktioniert nur in Verbindung mit LIMIT. Beispielsweise wird die folgende Klausel verwendet, um Zeilen zu finden, die der WHERE-Klausel entsprechen, timestamp_column zur Klassifizierung zu verwenden und die erste (älteste) Zeile zu löschen:
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
Sie können mehrere DELETE-Anweisungen in einer Tabelle angeben. Löschen Sie Zeilen aus einer oder mehreren Tabellen basierend auf bestimmten Bedingungen in mehreren Tabellen. Allerdings können Sie ORDER BY oder LIMIT nicht in einer DELETE-Anweisung mit mehreren Tabellen verwenden.
Der Abschnitt „table_references“ listet die in der Union enthaltenen Tabellen auf.
Bei der ersten Syntax werden nur die entsprechenden Zeilen in der Tabelle gelöscht, die vor der FROM-Klausel aufgeführt sind. Bei der zweiten Syntax werden nur die entsprechenden Zeilen in der Tabelle gelöscht, die in der FROM-Klausel (vor der USING-Klausel) aufgeführt sind. Die Funktion besteht darin, dass Sie Zeilen in vielen Tabellen gleichzeitig löschen und andere Tabellen zum Suchen verwenden können:
DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
oder:
DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
Bei der Suche nach zu löschenden Zeilen Diese Anweisungen verwenden alle drei Tabellen, löschen jedoch nur die entsprechenden Zeilen aus den Tabellen t1 und t2.
Das obige Beispiel zeigt einen internen Join mit dem Komma-Operator, aber die DELETE-Anweisung für mehrere Tabellen kann alle in der SELECT-Anweisung zulässigen Join-Typen verwenden, z. B. LEFT JOIN.
本语法允许在名称后面加.*,以便与Access相容。
如果您使用的多表DELETE语句包括InnoDB表,并且这些表受外键的限制,则MySQL优化程序会对表进行处理,改变原来的从属关系。在这种情况下,该语句出现错误并返回到前面的步骤。要避免此错误,您应该从单一表中删除,并依靠InnoDB提供的ON DELETE功能,对其它表进行相应的修改。
注释:当引用表名称时,您必须使用别名(如果已给定):
DELETE t1 FROM test AS t1, test2 WHERE ...
进行多表删除时支持跨数据库删除,但是在此情况下,您在引用表时不能使用别名。举例说明:
DELETE test1.tmp1, test2.tmp2 FROM test1.tmp1, test2.tmp2 WHERE ...
目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

Speichernde Verfahren sind vorkompilierte SQL -Anweisungen in MySQL zur Verbesserung der Leistung und zur Vereinfachung komplexer Vorgänge. 1. Verbesserung der Leistung: Nach der ersten Zusammenstellung müssen nachfolgende Anrufe nicht neu kompiliert werden. 2. Die Sicherheit verbessern: Beschränken Sie den Zugriff auf die Datenentabelle durch Berechtigungssteuerung. 3. Vereinfachen Sie komplexe Operationen: Kombinieren Sie mehrere SQL -Anweisungen, um die Logik der Anwendungsschicht zu vereinfachen.

Das Arbeitsprinzip des MySQL -Abfrage -Cache besteht darin, die Ergebnisse der ausgewählten Abfrage zu speichern. Wenn dieselbe Abfrage erneut ausgeführt wird, werden die zwischengespeicherten Ergebnisse direkt zurückgegeben. 1) Abfrage -Cache verbessert die Leistung der Datenbank und findet zwischengespeicherte Ergebnisse durch Hash -Werte. 2) Einfache Konfiguration, setzen Sie in MySQL -Konfigurationsdatei query_cache_type und query_cache_size. 3) Verwenden Sie das Schlüsselwort SQL_NO_Cache, um den Cache spezifischer Abfragen zu deaktivieren. 4) In Hochfrequenz-Update-Umgebungen kann Abfrage-Cache Leistungs Engpässe verursachen und muss für die Verwendung durch Überwachung und Anpassung von Parametern optimiert werden.

Die Gründe, warum MySQL in verschiedenen Projekten häufig verwendet wird, umfassen: 1. Hochleistungs und Skalierbarkeit, die mehrere Speichermotoren unterstützen; 2. Einfach zu verwendende und pflegende, einfache Konfiguration und reichhaltige Werkzeuge; 3. Reiches Ökosystem, das eine große Anzahl von Community- und Drittanbietern anzieht; V.

Zu den Schritten für die Aktualisierung der MySQL -Datenbank gehören: 1. Sicherung der Datenbank, 2. Stoppen Sie den aktuellen MySQL -Dienst, 3. Installieren Sie die neue Version von MySQL, 14. Starten Sie die neue Version des MySQL -Dienstes, 5. Wiederherstellen Sie die Datenbank wieder her. Während des Upgrade -Prozesses sind Kompatibilitätsprobleme erforderlich, und erweiterte Tools wie Perconatoolkit können zum Testen und Optimieren verwendet werden.

Zu den MySQL-Backup-Richtlinien gehören logische Sicherungen, physische Sicherungen, inkrementelle Sicherungen, replikationsbasierte Backups und Cloud-Backups. 1. Logical Backup verwendet MySQldump, um die Datenbankstruktur und -daten zu exportieren, die für kleine Datenbanken und Versionsmigrationen geeignet sind. 2. Physische Sicherungen sind durch das Kopieren von Datendateien schnell und umfassend, erfordern jedoch eine Datenbankkonsistenz. 3. Incremental Backup verwendet eine binäre Protokollierung, um Änderungen aufzuzeichnen, was für große Datenbanken geeignet ist. V. 5. Cloud -Backups wie AmazonRDs bieten Automatisierungslösungen, aber Kosten und Kontrolle müssen berücksichtigt werden. Bei der Auswahl einer Richtlinie sollten Datenbankgröße, Ausfallzeittoleranz, Wiederherstellungszeit und Wiederherstellungspunktziele berücksichtigt werden.

MysqlclusteringenhancesDatabaserObustnessandScalabilityBydiTributingDataacrossmultiPlenodes

Das Optimieren von Datenbankschema -Design in MySQL kann die Leistung in den folgenden Schritten verbessern: 1. Indexoptimierung: Erstellen Sie Indizes für gemeinsame Abfragespalten, Ausgleich des Aufwand der Abfragen und Einfügen von Aktualisierungen. 2. Tabellenstrukturoptimierung: Redundieren Sie die Datenreduktion durch Normalisierung oder Anti-Normalisierung und verbessern Sie die Zugangseffizienz. 3. Datentypauswahl: Verwenden Sie geeignete Datentypen, z. B. int anstelle von VARCHAR, um den Speicherplatz zu reduzieren. 4. Partitionierung und Untertisch: Verwenden Sie für große Datenvolumina die Partitionierung und Untertabelle, um Daten zu dispergieren, um die Abfrage- und Wartungseffizienz zu verbessern.

TooptimizeMySQLperformance,followthesesteps:1)Implementproperindexingtospeedupqueries,2)UseEXPLAINtoanalyzeandoptimizequeryperformance,3)Adjustserverconfigurationsettingslikeinnodb_buffer_pool_sizeandmax_connections,4)Usepartitioningforlargetablestoi


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
