Mehrere Join abfragen dauern über 1 min

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere Join abfragen dauern über 1 min

    Hallo ich habe eine Abfrage über mehrere Tabellen und verwende dazu mehrere Join. Leider dauert die Abfrage ewig (über 1 min)
    PHP-Code:
    $query erp_db_query (" SELECT a.uid FROM import_products a
        LEFT JOIN import_product_to_cat b ON a.uid = b.productID
        LEFT JOIN import_igno c ON a.uid = c.uid 
        LEFT JOIN artikelliste d ON a.uid = d.artikelnr_id 
        WHERE d.artikelnr_id IS NULL AND c.uid IS NULL   "
    ); 
    import_products hat ca. 30000 Einträge und ich will alle anzeigen die nicht in artikelliste oder import_igno stehen. Die Abfrage funktioniert auch aber dauert halt ewig.
    Die Indexe sind richtig gesetzt (denke ich mal)
    PHP-Code:
    CREATE TABLE `import_products` (
        `
    uidVARCHAR(15NOT NULL DEFAULT '0',
        `
    manufacturerNameVARCHAR(50NULL DEFAULT NULL COLLATE 'latin1_german1_ci',    
        `
    productDescripionVARCHAR(500NULL DEFAULT NULL,
        
    INDEX `uid` (`uid`)
    )
    ENGINE=MyISAM
    ROW_FORMAT
    =DEFAULT 
    PHP-Code:
    CREATE TABLE `artikelliste` (
        `
    artikelnr_idVARCHAR(15NOT NULL DEFAULT '',
        `
    products_idINT(11NOT NULL DEFAULT '6000',
        
    INDEX `artikelnr_id` (`artikelnr_id`)
    )
    ENGINE=MyISAM
    ROW_FORMAT
    =DEFAULT 
    PHP-Code:
    CREATE TABLE `import_product_to_cat` (
        `
    productIDVARCHAR(15NOT NULL DEFAULT '0',
        `
    catIdINT(15NULL DEFAULT NULL,
        
    INDEX `productID` (`productID`)
    )
    ENGINE=MyISAM
    ROW_FORMAT
    =DEFAULT 
    PHP-Code:
    CREATE TABLE `import_igno` (
        `
    uidVARCHAR(15NOT NULL DEFAULT '',
        `
    productNameVARCHAR(120NOT NULL DEFAULT '',
        `
    date_addedTIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        
    INDEX `uid` (`uid`)
    )
    ENGINE=MyISAM
    ROW_FORMAT
    =DEFAULT 
    Was ist da falsch das die Abfrage so lange dauert?
    Ich hab herausgefunden das es das LEFT JOIN artikelliste d ON a.uid = d.artikelnr_id ist was so lange dauert. (artikelliste hat ca. 6000 Einträge, import_igno ist noch leer)

    Ein ("EXPLAIN SELECT.... bringt mir keine Anzeige sondern bei mysql_num_rows nur eine 4 satt 30000, komisch.

    Wer hat eine Idee was ich optimieren muss um die Abfrage zu beschleunigen?
    Normal dürfte die doch max. 0,1 sec dauern.

    Besten Dank
    Gruß Haxley
    XAMPP auf WIN XP mit Mysql 5.0.51 und php 5.2

  • #2
    Hast du überhaupt keine Primary Keys???

    Kommentar


    • #3
      [Erledigt] 3x join dauert ewig, kann man das optimieren? - php.de

      *close*
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X