[MySQL 4.0] Alternative zu Concat / Umformung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.0] Alternative zu Concat / Umformung

    Hallo,

    ich habe dieses SQL Statement

    Code:
    SELECT
        COUNT(t2.idx) as total
    FROM
        dirs as t1, idx as t2, ftps as t3, files as t4
    WHERE
        CONCAT(t1.dstring,t4.dstring) REGEXP "mp3"
    AND
        t2.IDXfil = t4.idx
    AND
        t2.IDXftp = t3.idx 
    AND
        t2.IDXdir = t1.idx
    Dieses Statement ist VERDAMMT lahm

    Gibt es eine Alternative zu diesem CONCAT, ich schätze es liegt am CONCAT.

  • #2
    wenn ich sowas sehe ....
    Code:
    FROM
        dirs as t1, idx as t2, ftps as t3, files as t4
    ... wundert es mich auch nicht, warum es so langsam ist .....

    JOINs sind dir hier bestimmt eine hilfe.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Also ich bin mir nicht so ganz sicher, aber ich denke JOINS sollten es etwas beschleunigen, sowie index. vielleicht ist sogar der befehl LIKE besser dafür geeignet. könntest ja mal: http://dev.mysql.com/doc/mysql/de/EXPLAIN.html versuchen!
      Zuletzt geändert von xManUx; 05.12.2004, 13:51.

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        gleiches gilt übrigens für http://www.php-resource.de/forum/sho...threadid=47802 !!

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          Hi,

          kann mir da jemand mal richtig helfen ?
          Wo soll ich denn da Joins einbauen ?
          Joins in there Where Klausel ? Geht das überhaupt ?

          Kommentar


          • #6
            lies doch einfach mal den sticky!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Original geschrieben von Abraxax
              lies doch einfach mal den sticky!
              Ist jemand anderes bereit, sein Wissen zu teilen / zu sharen ?

              Kommentar


              • #8
                OffTopic:
                wenn ich danach nicht mehr lotto spielen muss, ;P

                Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                sondern mit den Augen das Manual zu lesen.

                Kommentar


                • #9
                  Original geschrieben von presentweb
                  Ist jemand anderes bereit, sein Wissen zu teilen / zu sharen ?
                  d.h. du willst alles vorgekaut haben? nein. danke. nicht mit mir. ich helfe gerne, aber nicht beim vorkauen!
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Der Sticky bringt mir aber nichts !

                    Das ist genau so, als würde man von mir jetzt verlangen, eine Polynomdivision ohne HG-Wissen zu vollziehen.

                    Was also muss ich an dem Statement ändern ?

                    Kommentar


                    • #11
                      dann lass es bleiben?


                      kleines beispiel:

                      Code:
                      SELECT
                          COUNT(t2.idx) as total
                      FROM
                                       dirs as t2
                      LEFT JOIN
                                       files as t4 ON t2.IDXfil = t4.idx
                      WHERE
                          CONCAT(t4.dstring,t4.dstring) REGEXP "mp3"

                      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                      sondern mit den Augen das Manual zu lesen.

                      Kommentar


                      • #12
                        Original geschrieben von xManUx
                        dann lass es bleiben?


                        kleines beispiel:

                        Code:
                        SELECT
                            COUNT(t2.idx) as total
                        FROM
                                         dirs as t2
                        LEFT JOIN
                                         files as t4 ON t2.IDXfil = t4.idx
                        WHERE
                            CONCAT(t4.dstring,t4.dstring) REGEXP "mp3"
                        Dein Bsp verstehe ich nicht, sorry ?!

                        Kommentar


                        • #13
                          Hi,

                          ich habe das gemacht!

                          Code:
                          SELECT
                              COUNT(t2.idx) as total
                          FROM
                          LEFT JOIN
                              files as t4 ON t2.IDXfil = t4.idx
                              ftps as t3 ON t2.IDXftp = t3.idx
                              dirs as t1 ON t2.IDXdir = t1.idx
                          WHERE
                              CONCAT(t1.dstring,t4.dstring) REGEXP "test"
                          bekomme aber folgenden fehler!

                          #1064 - You have an error in your SQL syntax.__Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ftps as t3 ON t2.IDXftp = t3.idx
                          ____dirs as t1 ON t2.IDXdir =

                          Kommentar


                          • #14
                            tja warum wohl ;P

                            jede tabellenverknüpfung braucht einen EIGENEN JOIN


                            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                            sondern mit den Augen das Manual zu lesen.

                            Kommentar


                            • #15
                              So funktioniert ein JOIN nicht!!!

                              du hast immer

                              tab1 LEFT JOIN tab2

                              Gucks dir mal genauer an

                              Kommentar

                              Lädt...
                              X