From bjoern_dautermann at gmx.de Sun Apr 1 13:32:33 2007 From: bjoern_dautermann at gmx.de (=?iso-8859-1?Q?Bj=F6rn_Dautermann?=) Date: Sun, 1 Apr 2007 13:32:33 +0200 Subject: [dbs] Funktion Passwort vergessen Message-ID: <20070401113247.7B2D3274B4B@leipzig.mushaake.org> Hallo! - Ich habe eine Datei login-verw.php, die die Anmeldung, Abmeldung und die Funktion Passwort vergessen übernimmt. - Diese Seite stellt die Formulare bereit. - Die eigentliche Funktion findet in einer weiteren Seite statt. D.h. wenn man auf der Home-Seite auf Passwort vergessen klickt werden in der URL Parameter übergeben, die das jeweilige Formular aufrufen. Obwohl ich das Formular zu "Passwort vergessen" analog zu dem Formular "anmelden" angelegt habe, kann ich bei "anmelden" per ENTER das Formular wegschicken und im anderen Fall nicht. Fehlt noch irgendwas? PHP: ________________________________________ ... else     if (isset ($_GET['forgot'])) { echo '

Passwort vergessen

'; echo '

';              ?>
E-Mail Adresse:

zurück zur Homepage
'; echo ''; ?> From bjoern_dautermann at gmx.de Sun Apr 1 13:37:54 2007 From: bjoern_dautermann at gmx.de (=?iso-8859-1?Q?Bj=F6rn_Dautermann?=) Date: Sun, 1 Apr 2007 13:37:54 +0200 Subject: [dbs] Problem Warenkorb Message-ID: <20070401113807.9FFDD274B2C@leipzig.mushaake.org> Hi zusammen! Habe zwei verschiedene Warenkörbe erstellt. Den 1. um die Menge jedes Artikels zu erfassen und den 2. um alle bisher ausgewählten Artikel nochmals anzeigen zu lassen und ggf. zu löschen. Datei 2. warenkorb: - hat drei Spalten: 1. Spalte: checkbox kann angeklickt werden, wenn Artikel aus SESSION gelöscht werden soll. 2. Spalte: Hier werden die ausgewählten Artikel, die sich in der SESSION befinden nochmals ausgegeben 3. Spalte Preis je Position (Menge x Preis) Problem: Mit der Funktion unset() kann ich den Artikel aus der Session löschen. Jedoch wird er zunächst nochmal auf der Seite angezeigt. Erst wenn ich auf zurück zum Shop und dann nochmal den Warenkorb aufrufe wird der Artikel nicht mehr aufgerufen. -------------- nächster Teil -------------- Ein eingebundener Text mit undefiniertem Zeichensatz wurde abgetrennt. Name: code.txt URL: http://lists.phpbar.de/pipermail/dbs/attachments/20070401/aaf5cce1/attachment.txt From bjoern_dautermann at gmx.de Sun Apr 1 17:36:08 2007 From: bjoern_dautermann at gmx.de (=?iso-8859-1?Q?Bj=F6rn_Dautermann?=) Date: Sun, 1 Apr 2007 17:36:08 +0200 Subject: [dbs] Summe bilden Message-ID: <20070401153620.D9B7010E4A2@leipzig.mushaake.org> Hallo! - ich möchte die Summe zu Einträgen bestimmen, die ich aus der Datenbank lese - in einer Warenkorb - Datei lese ich die bisher gewählten Artikel nochmals aus - jede Position hat eine bestimmte "Zwischensumme" (Menge x Preis) - diese Zwischensumme will ich jeweils speichern in einem Array und am Ende die einzelnen Z-Summen zu einer Summe addieren -------------- nächster Teil -------------- Ein eingebundener Text mit undefiniertem Zeichensatz wurde abgetrennt. Name: code.txt URL: http://lists.phpbar.de/pipermail/dbs/attachments/20070401/32bf0449/attachment.txt From bjoern_dautermann at gmx.de Thu Apr 5 13:14:12 2007 From: bjoern_dautermann at gmx.de (=?iso-8859-1?Q?Bj=F6rn_Dautermann?=) Date: Thu, 5 Apr 2007 13:14:12 +0200 Subject: [dbs] Frage zu "undefined index" Message-ID: <20070405111438.EA26C274A26@leipzig.mushaake.org> Hi zusammen! Eigentlich sollte man meinen die Meldung „undefined index“ erklärt sich von selbst. Ich stehe hierbei gerade auf dem Schlauch. Vielleicht weis ja jemand Rat. Erhalte derzeit folgende Fehlermeldung: Notice: Undefined index: fromname in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\kasse.php on line 178 Dies betrifft diese Zeile: $from_name = $_POST['fromname']; Diese Zeile bezieht sich wiederum auf diese Zeile des Formulars: Normalerweise erhält man doch eine solche Fehlermeldung, wenn man Anführungszeichen vergessen hat. Vielen Dank schon mal für eure Hilfe. Gruß Björn Dautermann From m.ramsch at computer.org Thu Apr 5 14:28:29 2007 From: m.ramsch at computer.org (Martin Ramsch) Date: Thu, 5 Apr 2007 14:28:29 +0200 Subject: [dbs] Frage zu "undefined index" In-Reply-To: <20070405111438.EA26C274A26@leipzig.mushaake.org> References: <20070405111438.EA26C274A26@leipzig.mushaake.org> Message-ID: <2fd8400c0704050528h47ebaeci24b7e61eff82e72c@mail.gmail.com> Am 05.04.07 schrieb Björn Dautermann: > Eigentlich sollte man meinen die Meldung ?undefined index" erklärt sich von > selbst. [?] [?] > $from_name = $_POST['fromname']; Vorweg: solche reinen PHP-Fragen passen eigentlich nicht in die DBS-Mailingliste. Aber da die Listen eh ziemlich tot sind, ist es fast auch schon wieder egal ? Zur Fehlermeldung: ja, ist wirklich selbsterklärend! :-) Du müsstest Dich also fragen, wieso es $_POST['fromname'] nicht gibt! Wer/was hätte es erzeugen sollen? Was könnte die Erzeugung verhindern? Nutzt Dein HTML-Formular überhaupt die POST-Methode, oder übermittelst Du die Formulardaten per GET? Ciao, Martin From phpbar at koalashome.de Thu Apr 5 23:34:20 2007 From: phpbar at koalashome.de (Sven Eichler) Date: Thu, 5 Apr 2007 23:34:20 +0200 Subject: [dbs] Frage zu "undefined index" In-Reply-To: <20070405111438.EA26C274A26@leipzig.mushaake.org> References: <20070405111438.EA26C274A26@leipzig.mushaake.org> Message-ID: <200704052334.20176@koalashome.de> Hi Bitte nicht an zwei Listen gleichzeitig posten (php- und dbs-Liste). Die meisten Leser hier lesen beide Listen. Ist nur unnötiger Trafic. > Eigentlich sollte man meinen die Meldung „undefined index“ erklärt sich > von selbst. Ich stehe hierbei gerade auf dem Schlauch. Vielleicht weis ja > jemand Rat. [...] > $from_name = $_POST['fromname']; Versuchs mal damit (ausführliche Version): if (isset ($_POST['fromname'])) { $from_name = $_POST['fromname']; } else { $from_name = ''; } -- Sven From stefan.robek at gmx.net Sat Apr 7 17:43:12 2007 From: stefan.robek at gmx.net (Stefan Robek) Date: Sat, 7 Apr 2007 17:43:12 +0200 Subject: [dbs] Frage zu "undefined index" In-Reply-To: <20070405111438.EA26C274A26@leipzig.mushaake.org> Message-ID: <20070407154246.A527E274D08@leipzig.mushaake.org> Hi, hierbei handelt es sich um keine Fehlermeldung sondern lediglich um eine Notiz. Vermutlich füllst du das Feld in dem Formular nicht aus. Ich würde die php.ini bearbeiten und PHP sagen, dass er keine Notizen mehr ausgeben soll. Wenn du kein Zugriff hast auf die php.ini, dann versuch es mal mit der PHP-Funktion error_reporting(). Damit kannst du PHP sagen, was er ausgeben soll. Ansonsten können diese Notizen auf Dauer sehr lästig werden... Stefan -----Original Message----- From: dbs-bounces at phpbar.de [mailto:dbs-bounces at phpbar.de] On Behalf Of Björn Dautermann Sent: Donnerstag, 5. April 2007 13:14 To: dbs at phpbar.de; 'deutschsprachige PHP-Mailingliste' Subject: [dbs] Frage zu "undefined index" Hi zusammen! Eigentlich sollte man meinen die Meldung „undefined index“ erklärt sich von selbst. Ich stehe hierbei gerade auf dem Schlauch. Vielleicht weis ja jemand Rat. Erhalte derzeit folgende Fehlermeldung: Notice: Undefined index: fromname in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\kasse.php on line 178 Dies betrifft diese Zeile: $from_name = $_POST['fromname']; Diese Zeile bezieht sich wiederum auf diese Zeile des Formulars: Normalerweise erhält man doch eine solche Fehlermeldung, wenn man Anführungszeichen vergessen hat. Vielen Dank schon mal für eure Hilfe. Gruß Björn Dautermann -- ** deutschsprachige (PHP- und) Datenbanken-Liste: dbs at phpbar.de Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/dbs From michael at md-d.org Tue Apr 17 12:55:09 2007 From: michael at md-d.org (Michael Diederich) Date: Tue, 17 Apr 2007 12:55:09 +0200 Subject: [dbs] =?iso-8859-15?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= Message-ID: <4624A78D.2060506@md-d.org> Hallo, ich muss mir überlegen, wie eine Datenbankanwendung mit mysql und InnoDB mehrsprachig werden kann. Die Datenbank besteht aus ca. 100 Tabellen mit Fremdschlüsselbeziehungen. Es gibt neben technischen Daten auch Benutzer, die sich am System anmelden. Lösung 1: Die Daten werden in einem Feld 'Ausgabe' 1:1 übersetzt. Wenn ein Benutzer die Sprache DE, EN, FR und IT will, muss er sich in 4 Projekten anmelden, gespeicherte Daten sind nur im jeweiligen Projekt verfügbar. Lösung 2: Die Daten werden übersetzt, eine externe Datenbank speichert die Benutzerdaten. Fremdschlüsselbeziehungen gehen damit kaputt. Lösung 3: Bei jeder Abfrage wird eine Sprachauflösungstabelle verwendet. Extremer Overhead, ähnlich wie symbolische Tabellen bei einem Wechsel auf MaxDB. Lösung 4: Replikation der nicht-technischen Daten zwischen den Servern. Problem für InnoDB: Nicht alle Projekte müssen per se immer den gleichen aktuellen Stand haben. Das sind die Ideen, die ich bis jetzt habe. Jetzt wäre ich für weitere Ideen und weniger Kopfschmerzen sehr dankbar :) Vielen Dank und viele Grüße, Michael From ulf.deppert at deppert-it.de Tue Apr 17 13:07:50 2007 From: ulf.deppert at deppert-it.de (Ulf Deppert) Date: Tue, 17 Apr 2007 13:07:50 +0200 Subject: [dbs] =?iso-8859-1?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= References: <4624A78D.2060506@md-d.org> Message-ID: <000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3> Hallo Michael, Bei mir kosten 'weitere Ideen und weniger Kopfschmerzen' Geld. Informiere Dich bitte bei www.deppert-it.de über die Preise. Ich fürchte, um eine Übersetzung der DB Einträge wirst du wohl nicht herumkommen. 100 Tabellen mehrsprachig machen. Anspruchsvoll ! Gruß Ulf Ulf Deppert IT-Beratung www.deppert-it.de ----- Original Message ----- From: "Michael Diederich" To: Sent: Tuesday, April 17, 2007 12:55 PM Subject: [dbs] Datenbankdesign für Mehrsprachigkeit Hallo, ich muss mir überlegen, wie eine Datenbankanwendung mit mysql und InnoDB mehrsprachig werden kann. Die Datenbank besteht aus ca. 100 Tabellen mit Fremdschlüsselbeziehungen. Es gibt neben technischen Daten auch Benutzer, die sich am System anmelden. Lösung 1: Die Daten werden in einem Feld 'Ausgabe' 1:1 übersetzt. Wenn ein Benutzer die Sprache DE, EN, FR und IT will, muss er sich in 4 Projekten anmelden, gespeicherte Daten sind nur im jeweiligen Projekt verfügbar. Lösung 2: Die Daten werden übersetzt, eine externe Datenbank speichert die Benutzerdaten. Fremdschlüsselbeziehungen gehen damit kaputt. Lösung 3: Bei jeder Abfrage wird eine Sprachauflösungstabelle verwendet. Extremer Overhead, ähnlich wie symbolische Tabellen bei einem Wechsel auf MaxDB. Lösung 4: Replikation der nicht-technischen Daten zwischen den Servern. Problem für InnoDB: Nicht alle Projekte müssen per se immer den gleichen aktuellen Stand haben. Das sind die Ideen, die ich bis jetzt habe. Jetzt wäre ich für weitere Ideen und weniger Kopfschmerzen sehr dankbar :) Vielen Dank und viele Grüße, Michael -- ** deutschsprachige (PHP- und) Datenbanken-Liste: dbs at phpbar.de Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/dbs From ralf at kuerbis.org Tue Apr 17 22:05:56 2007 From: ralf at kuerbis.org (Ralf Geschke) Date: Tue, 17 Apr 2007 22:05:56 +0200 Subject: [dbs] =?iso-8859-1?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= In-Reply-To: <000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3> References: <4624A78D.2060506@md-d.org> <000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3> Message-ID: <462528A4.6040006@kuerbis.org> Hallo Ulf! > Bei mir kosten 'weitere Ideen und weniger Kopfschmerzen' Geld. [...] Danke fuer Deinen Beitrag. Leider ist die Formatierung etwas ungeschickt geraten. Daher schau' Dir bitte http://www.phpbar.de/w/Mailingliste:Regeln bzw. die Hinweise zum Zitieren unter http://www.afaik.de/usenet/faq/zitieren/ an und richte Dich bei der naechsten Mail danach. Gruss, Ralf (List-Admin) PS. Wenn schon Werbung, dann halte Dich wenigstens an die sonstigen Regeln. From ulf.deppert at deppert-it.de Tue Apr 17 23:12:45 2007 From: ulf.deppert at deppert-it.de (Ulf Deppert) Date: Tue, 17 Apr 2007 23:12:45 +0200 Subject: [dbs] =?iso-8859-1?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= References: <4624A78D.2060506@md-d.org><000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3> <462528A4.6040006@kuerbis.org> Message-ID: <001001c78135$2791b9e0$7c0b415b@ulfew45vx95ik3> Hallo Ralf, ich entschuldige mich in aller Form. Hab wirklich gedacht, dass ich eine potentielle Kundenanfrage von einem Herrn Michael Diederichs bekam mit einer Frage zum php/mysql Thema: 'Mehrsprachig machen von 100 Tabellen'. Hab die Umleitung über phpbar.de gar nicht registriert. Ich hoffe, dass mein Verhalten hiermit entschuldigt ist. Ich kann mich leider nicht mehr wie früher auf 'Benimm- und Zitiermassregelungen' einlassen, obwohl diese Art der Behandlung ein für mich damals zwar unangehnehmer aber entscheidener Zugang zur professionellen Datenverarbeitung gewesen ist. Heutzutage muss ich mit EDV Geld verdienen und habe nicht mehr so viel Zeit mich in Fachforen zu beweisen bzw. 'ohne Auftrag' dazuzulernen. Dennoch werde ich die 'Hinweise zum Zitieren' und die 'Mailingliste:Regeln' lesen und mich danach richten (aber nicht hinrichten). Gruß Ulf Ulf Deppert IT-Beratung www.deppert-it.de ----- Original Message ----- From: "Ralf Geschke" To: "(PHP und) Datenbanken - deutschsprachig" Sent: Tuesday, April 17, 2007 10:05 PM Subject: Re: [dbs] Datenbankdesign für Mehrsprachigkeit Hallo Ulf! > Bei mir kosten 'weitere Ideen und weniger Kopfschmerzen' Geld. [...] Danke fuer Deinen Beitrag. Leider ist die Formatierung etwas ungeschickt geraten. Daher schau' Dir bitte http://www.phpbar.de/w/Mailingliste:Regeln bzw. die Hinweise zum Zitieren unter http://www.afaik.de/usenet/faq/zitieren/ an und richte Dich bei der naechsten Mail danach. Gruss, Ralf (List-Admin) PS. Wenn schon Werbung, dann halte Dich wenigstens an die sonstigen Regeln. -- ** deutschsprachige (PHP- und) Datenbanken-Liste: dbs at phpbar.de Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/dbs From reti at rennkuckuck.de Wed Apr 18 02:06:46 2007 From: reti at rennkuckuck.de (Rene Thiel) Date: Wed, 18 Apr 2007 02:06:46 +0200 Subject: [dbs] Datenbankdesign für Mehrsprachigkeit References: <4624A78D.2060506@md-d.org><000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3><462528A4.6040006@kuerbis.org> <001001c78135$2791b9e0$7c0b415b@ulfew45vx95ik3> Message-ID: Ulf Deppert schrieb: > Ich kann mich leider nicht mehr wie früher auf 'Benimm- und Zitiermassregelungen' > einlassen... > Dennoch werde ich die 'Hinweise zum Zitieren' und die 'Mailingliste:Regeln' > lesen und mich danach richten Ist "Deppert" = Programm? http://www.afaik.de/usenet/faq/zitieren/zitieren-2.php3#ss2.3 Hallo Michael, was heißt "Datenbankanwendung"? Sollte PHP zur Verfügung stehen, empfehle ich Sprach-Dateien als Includes. Gruß René Thiel (Rennkuckuck) mailto:reti at rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS From ulf.deppert at deppert-it.de Wed Apr 18 07:58:48 2007 From: ulf.deppert at deppert-it.de (Ulf Deppert) Date: Wed, 18 Apr 2007 07:58:48 +0200 Subject: [dbs] =?iso-8859-1?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= References: <4624A78D.2060506@md-d.org><000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3><462528A4.6040006@kuerbis.org><001001c78135$2791b9e0$7c0b415b@ulfew45vx95ik3> Message-ID: <000801c7817e$a2271080$7c0b415b@ulfew45vx95ik3> ok. Bitte tragt mich mit sofortiger Wirkung aus der phpbar.de Mailingliste aus. Von Euch möchte ich keine emails mehr erhalten. Zu schlechtes email Benehmen hier. Ulf Deppert ----- Original Message ----- From: "Rene Thiel" To: "(PHP und) Datenbanken - deutschsprachig" Sent: Wednesday, April 18, 2007 2:06 AM Subject: Re: [dbs] Datenbankdesign für Mehrsprachigkeit Ulf Deppert schrieb: > Ich kann mich leider nicht mehr wie früher auf 'Benimm- und > Zitiermassregelungen' > einlassen... > Dennoch werde ich die 'Hinweise zum Zitieren' und die > 'Mailingliste:Regeln' > lesen und mich danach richten Ist "Deppert" = Programm? http://www.afaik.de/usenet/faq/zitieren/zitieren-2.php3#ss2.3 Hallo Michael, was heißt "Datenbankanwendung"? Sollte PHP zur Verfügung stehen, empfehle ich Sprach-Dateien als Includes. Gruß René Thiel (Rennkuckuck) mailto:reti at rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS -- ** deutschsprachige (PHP- und) Datenbanken-Liste: dbs at phpbar.de Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/dbs From michael at md-d.org Wed Apr 18 08:49:46 2007 From: michael at md-d.org (Michael Diederich) Date: Wed, 18 Apr 2007 08:49:46 +0200 Subject: [dbs] =?iso-8859-1?q?Datenbankdesign_f=FCr_Mehrsprachigkeit?= In-Reply-To: References: <4624A78D.2060506@md-d.org><000401c780e0$a3b77f50$7c0b415b@ulfew45vx95ik3><462528A4.6040006@kuerbis.org> <001001c78135$2791b9e0$7c0b415b@ulfew45vx95ik3> Message-ID: <4625BF8A.7080004@md-d.org> Hi René, Rene Thiel schrieb: > was heißt "Datenbankanwendung"? > Sollte PHP zur Verfügung stehen, empfehle ich Sprach-Dateien als Includes. PHP nicht direkt, aber ColdFusion (Applikationsserver auf Java). Includes wären damit machbar, allerdings verstehe ich den Tipp nicht: Im Quellcode ist nur noch minimal hartkodierte Sprache - das kann man alles so erschlagen. Das Problem ist eher die Datenbank. Das Problem ist eigentlich trivial, da viele Projekte diese Aufgabe haben: Diese verwenden dann entweder eigene Datenbanken wo alles 1:1 übersetzt ist oder erweitern es mit gettext um Sprachdateien. Ich habe mittlerweile einige PDFs zu dem Thema gelesen und eine Idee, wie ich es machen werde. Mysql 5.0 unterstützt externe Tabellen. Sprich, ich werde meine projektübergreifenden Daten in solchen Tabellen speichern, das jede Sprache zugreifen kann. Die eigentlichen technischen Daten werden dann sprachbezogen 1:1 übersetzt. Der Abgleich wird dann die technischen Daten kopieren, aber nicht die Sprache. http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html Ich muss noch schauen, ob ich mir damit nicht weitere Baustellen aufmache :/ Aber vielleicht hat ja noch einer eine Idee :) Danke und Grüße, Michael From stefan.novak at bnet.at Wed Apr 18 11:23:36 2007 From: stefan.novak at bnet.at (Stefan Novak) Date: Wed, 18 Apr 2007 11:23:36 +0200 Subject: [dbs] DB Speed Mysql Message-ID: <132907FD78998A48AC7F144F7B6DB7D84A63FF@hermes.wellcom.intern> Hallo! Ich habe ein Problem mit einem langsamen query: SELECT k.id AS userid, k.kundennummer AS user_name, sum( d.bytes_in + d.bytes_out ) AS totalbytes, sum( d.bytes_in ) AS inbytes, sum( d.bytes_out ) AS outbytes, max( p.downloadvolumen ) AS maxvol FROM kunde k, produkte p, aironet_daten d WHERE k.trafficverrechnungsart = 'sperren' AND k.id = d.kunde AND k.p_id = p.p_id AND d.date >= '2007-04-01' AND d.date < '2007-05-01' GROUP BY k.id HAVING max( p.downloadvolumen ) < sum( d.bytes_in + d.bytes_out ); +--------+-----------+-------------+------------+-------------+--------------------+ | userid | user_name | totalbytes | inbytes | outbytes | maxvol | +--------+-----------+-------------+------------+-------------+--------------------+ | 15xx | xxxxx | 5174676165 | 518204125 | 4656472040 | 4456028569.600000 | | 37xx | xxxxx | 5010508039 | 2578990753 | 2431517286 | 4456028569.600000 | | 42xx | xxxxx | 4600284777 | 2178771667 | 2421513110 | 4456028569.600000 | | 43xx | xxxxx | 1447494958 | 641036587 | 806458371 | 1234803097.600000 | +--------+-----------+-------------+------------+-------------+--------------------+ 12 rows in set (2.66 sec) EXPLAIN SELECT k.id AS userid, k.kundennummer AS user_name, sum( d.bytes_in + d.bytes_out ) AS totalbytes, sum( d.bytes_in ) AS inbytes, sum( d.bytes_out ) AS outbytes, max( p.downloadvolumen ) AS maxvol FROM kunde k, produkte p, aironet_daten d WHERE k.trafficverrechnungsart = 'sperren' AND k.id = d.kunde AND k.p_id = p.p_id AND d.date >= '2007-04-01' AND d.date < '2007-05-01' GROUP BY k.id HAVING max( p.downloadvolumen ) < sum( d.bytes_in + d.bytes_out ); +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ | 1 | SIMPLE | d | range | kunde,date_kunde | date_kunde | 3 | | 90510 | Using where; Using temporary; Using filesort | | 1 | SIMPLE | k | eq_ref | PRIMARY | PRIMARY | 4 | messwertedlv.d.kunde | 1 | Using where | | 1 | SIMPLE | p | eq_ref | PRIMARY | PRIMARY | 4 | messwertedlv.k.p_id | 1 | | +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ Was ich nicht so ganz verstehe ist warum er filesort verwendet wenn er doch einen Key zum suchen hat. Der table aironet_daten hat derzeit 85Mb Daten und 93 Mb Index. Die anderen Tables sind klein, sprich unter 5 Mb. Thx Stefan PS: Einige Daten habe ich verfälscht, was aber für das Problem egal sein sollte... From lists at sebastianmendel.de Wed Apr 18 13:37:51 2007 From: lists at sebastianmendel.de (Sebastian Mendel) Date: Wed, 18 Apr 2007 13:37:51 +0200 Subject: [dbs] DB Speed Mysql In-Reply-To: <132907FD78998A48AC7F144F7B6DB7D84A63FF@hermes.wellcom.intern> References: <132907FD78998A48AC7F144F7B6DB7D84A63FF@hermes.wellcom.intern> Message-ID: <4626030F.7090404@sebastianmendel.de> Stefan Novak schrieb: > Hallo! > > Ich habe ein Problem mit einem langsamen query: > > SELECT k.id AS userid, k.kundennummer AS user_name, sum( d.bytes_in + d.bytes_out ) AS totalbytes, sum( d.bytes_in ) AS inbytes, sum( d.bytes_out ) AS outbytes, max( p.downloadvolumen ) AS maxvol FROM kunde k, produkte p, aironet_daten d WHERE k.trafficverrechnungsart = 'sperren' AND k.id = d.kunde AND k.p_id = p.p_id AND d.date >= '2007-04-01' AND d.date < '2007-05-01' GROUP BY k.id HAVING max( p.downloadvolumen ) < sum( d.bytes_in + d.bytes_out ); ich habe es mal etwas lesbarer umgeschrieben: SELECT k.id AS userid, k.kundennummer AS user_name, SUM(d.bytes_in + d.bytes_out) AS totalbytes, SUM(d.bytes_in) AS inbytes, SUM(d.bytes_out) AS outbytes, MAX(p.downloadvolumen) AS maxvol FROM kunde k LEFT JOIN produkte p ON k.p_id = p.p_id LEFT JOIN aironet_daten d ON k.id = d.kunde AND d.date >= '2007-04-01' AND d.date < '2007-05-01' WHERE k.trafficverrechnungsart = 'sperren' GROUP BY k.id HAVING maxvol < totalbytes; > [...] > 12 rows in set (2.66 sec) > > EXPLAIN SELECT k.id AS userid, k.kundennummer AS user_name, sum( d.bytes_in + d.bytes_out ) AS totalbytes, sum( d.bytes_in ) AS inbytes, sum( d.bytes_out ) AS outbytes, max( p.downloadvolumen ) AS maxvol FROM kunde k, produkte p, aironet_daten d WHERE k.trafficverrechnungsart = 'sperren' AND k.id = d.kunde AND k.p_id = p.p_id AND d.date >= '2007-04-01' AND d.date < '2007-05-01' GROUP BY k.id HAVING max( p.downloadvolumen ) < sum( d.bytes_in + d.bytes_out ); > +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ > | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | > +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ > | 1 | SIMPLE | d | range | kunde,date_kunde | date_kunde | 3 | | 90510 | Using where; Using temporary; Using filesort | > | 1 | SIMPLE | k | eq_ref | PRIMARY | PRIMARY | 4 | messwertedlv.d.kunde | 1 | Using where | > | 1 | SIMPLE | p | eq_ref | PRIMARY | PRIMARY | 4 | messwertedlv.k.p_id | 1 | | > +----+-------------+-------+--------+------------------+------------+---------+----------------------+-------+----------------------------------------------+ > > Was ich nicht so ganz verstehe ist warum er filesort verwendet wenn er doch einen Key zum suchen hat. wie genau sieht der index aironet_daten.date_kunde aus? hast du es mal mit einem index nur auf aironet_daten.date probiert? -- Sebastian Mendel www.sebastianmendel.de