PythonQ 240-8XX Manual de usuario Pagina 359

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 358
338 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
WHERE schluessel_teil1=val1 AND schluessel_teil2=val2;
mysql> SELECT schluessel_teil2 FROM tabelle GROUP BY schluessel_teil1;
Die folgenden Anfragen benutzen Indexierung, um die Zeilen in sortierter Reihenfolge
abzufragen, ohne einen separaten Sortierdurchgang:
mysql> SELECT ... FROM tabelle ORDER BY schluessel_teil1,schluessel_teil2,... ;
mysql> SELECT ... FROM tabelle ORDER BY schluessel_teil1 DESC,schluessel_teil2 DESC,... ;
6.2.5 Wie MySQL DISTINCT optimiert
DISTINCT wird f¨ur alle Spalten in GROUP BY umgewandelt, DISTINCT in Kombination mit
ORDER BY ben¨otigt in vielen allen ebenfalls eine tempor¨are Tabelle.
Wenn LIMIT # mit DISTINCT kombiniert wird, alt MySQL an, sobald er # eindeutige Zeilen
findet.
Wenn Sie nicht Spalten aus allen benutzten Tabellen verwenden, alt MySQL mit dem
Scannen der nicht benutzten Tabellen an, sobald er die erste
¨
Ubereinstimmung gefunden
hat.
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
Im Beispiel wird angenommen, dass t1 vor t2 benutzt wird (¨uberpr¨ufen Sie das mit
EXPLAIN). In diesem Fall ort MySQL auf, von t2 zu lesen (f¨ur diese bestimmte Zeile in
t1), sobald die erste Zeile in t2 gefunden wurde.
6.2.6 Wie MySQL LEFT JOIN optimiert
A LEFT JOIN B ist in MySQL wie folgt implementiert:
Die Tabelle B wird als abh¨angig von Tabelle A und allen Tabellen, von denen A abh¨angig
ist, gesetzt.
Die Tabelle A wird als abh¨angig von allen Tabellen (ausser B) gesetzt, die in der LEFT
JOIN-Bedingung aufgef¨uhrt sind.
Alle LEFT JOIN-Bedingungen werden zu WHERE-Klausel verschoben.
Alle Standard-Join-Optimierungen werden durchgef¨uhrt, mit der Ausnahme, dass eine
Tabelle immer nach allen Tabellen gelesen wird, von denen sie abh¨angig ist. Wenn es
eine zirkul¨are Abh¨angigkeit gibt, gibt MySQL einen Fehler aus.
Alle Standard-WHERE-Optimierungen werden durchgef¨uhrt.
Wenn es eine Zeile in A gibt, die mit der WHERE-Klausel ¨ubereinstimmt, aber keine Zeile
in B, die mit der LEFT JOIN-Bedingung ¨ubereinstimmt, wird eine zus¨atzliche Zeile f¨ur
B erzeugt, deren Spalten alle auf NULL gesetzt sind.
Wenn Sie LEFT JOIN benutzen, um Zeilen zu finden, die in einer Tabelle nicht existieren,
und Sie folgendes im WHERE-Teil angeben: spalten_name IS NULL, wobei spalten name
eine Spalte ist, die als NOT NULL deklariert ist, ort MySQL mit der Suche nach weiteren
Zeilen auf (f¨ur eine bestimmte Schl¨usselkombination), nachdem er eine Zeile gefunden
hat, die mit der LEFT JOIN-Bedingung ¨ubereinstimmt.
RIGHT JOIN ist analog zu LEFT JOIN implementiert.
Vista de pagina 358
1 2 ... 354 355 356 357 358 359 360 361 362 363 364 ... 767 768

Comentarios a estos manuales

Sin comentarios