PythonQ 240-8XX Manual de usuario Pagina 185

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 184
164 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
4.5.7
¨
Uber zwei Schl¨ussel suchen
MySQL optimiert derzeit noch nicht, wenn Sie ¨uber zwei unterschiedliche Schl¨ussel suchen,
die mit OR kombiniert werden (eine Suche mit einem Schl¨ussel mit verschiedenen OR-Teilen
wird recht gut optimiert):
SELECT feld1_index, feld2_index FROM test_tabelle WHERE feld1_index = ’1’
OR feld2_index = ’1’
Der Grund liegt darin, dass wir bislang noch keine Zeit hatten, hierf¨ur eine effiziente
oglichkeit zu implementieren, die das ur allgemeine alle abhandelt. (Die
AND-Handhabung ist im Vergleich jetzt komplett allgemein und funktioniert sehr gut.)
In der Zwischenzeit onnen Sie dieses Problem sehr effizient osen, indem Sie eine
TEMPORARY-Tabelle verwenden. Diese Art der Optimierung ist ebenfalls sehr gut, wenn Sie
sehr komplizierte Anfragen verwenden, bei denen der SQL-Server die Optimierungen in
falscher Reihenfolge durchf¨uhrt.
CREATE TEMPORARY TABLE tmp
SELECT feld1_index, feld2_index FROM test_tabelle WHERE feld1_index = ’1’;
INSERT INTO tmp
SELECT feld1_index, feld2_index FROM test_tabelle WHERE feld2_index = ’1’;
SELECT * from tmp;
DROP TABLE tmp;
Diese oglichkeit der Anfrage ist im Endeffekt ein UNION von zwei Anfragen.
4.5.8 Besuche pro Tag berechnen
Folgendes zeigt, wie Sie die Bit-Gruppen-Funktionen benutzen onnen, um die Anzahl der
Tage pro Monat zu ahlen, in denen ein Benutzer eine Web-Seite besucht hat.
CREATE TABLE t1 (jahr YEAR(4), monat INT(2) UNSIGNED ZEROFILL, tag INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),(2000,2,23),(2000,2,23);
SELECT jahr,monat,BIT_COUNT(BIT_OR(1<<tag)) AS tage FROM t1 GROUP BY jahr,monat;
Das gibt folgendes Ergebnis zur¨uck:
+------+-------+------+
| jahr | monat | tage |
+------+-------+------+
| 2000 | 01 | 3 |
| 2000 | 02 | 2 |
+------+-------+------+
Dies berechnet, wie viele verschiedene Tage ur eine gegebene Jahr-Monats-Kombination
benutzt wurden, bei automatischer Entfernung doppelter Eintr¨age (Duplikate).
Vista de pagina 184
1 2 ... 180 181 182 183 184 185 186 187 188 189 190 ... 767 768

Comentarios a estos manuales

Sin comentarios