Hallo zusammen,
Ich habe 4 Tabellen und die will ich gerne joinen.
Ich habe das mit einer einfachen select join Query gemacht, aber das dauert leider 4-5 sek ..
Die View wird dann in einem PHP Skript benutzt .. (Daten werden von da rausgeholt)
Jetzt meine Frage : Wie kann ich mein Join verbessern?
1st Table (14.000 rows) :
2nd Table (250 rows):
3rd Table (100.000 rows) :
4th Table (120.000) :
SELECT (view) Query :
SELECT version() : 5.1.30
Wie kann ich jetzt die Performance von meinem Join verbessern ? Mehrere Views und jedes mal 2 Tabellen joinen ? LIMIT benutzen ?
Danke im voraus.
Ich habe 4 Tabellen und die will ich gerne joinen.
Ich habe das mit einer einfachen select join Query gemacht, aber das dauert leider 4-5 sek ..
Die View wird dann in einem PHP Skript benutzt .. (Daten werden von da rausgeholt)
Jetzt meine Frage : Wie kann ich mein Join verbessern?
1st Table (14.000 rows) :
Code:
CREATE TABLE `gatch` ( `gatchID` INT(11) NOT NULL AUTO_INCREMENT, `OS` VARCHAR(24) NOT NULL DEFAULT '', `Start` DATETIME NULL DEFAULT '0000-00-00 00:00:00', `End` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`gatchID`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
2nd Table (250 rows):
Code:
CREATE TABLE `gox` ( `goxID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `SN` VARCHAR(15) NOT NULL, PRIMARY KEY (`goxID`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
3rd Table (100.000 rows) :
Code:
CREATE TABLE `gest` ( `gestID` INT(11) NOT NULL AUTO_INCREMENT, `gatchID` INT(11) NOT NULL, PRIMARY KEY (`gestID`), INDEX `Index 2` (`gatchID`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
4th Table (120.000) :
Code:
CREATE TABLE `gestseriesbox` ( `ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `goxID` INT(10) UNSIGNED NOT NULL, `gestID` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`ID`), INDEX `Box` (`goxID`), INDEX `Test` (`gestID`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
SELECT (view) Query :
Code:
CREATE VIEW `myView` AS select `gatch`.`gatchID` AS `gatchID`, `gest`.`gestID` AS `gestID`, `gestseriesbox`.`ID` AS `GoxSeqID`, `gestseriesbox`.`goxID` AS `goxID`, `gox`.`SN` AS `SN`, from (`gatch` join ((`gest` join `gestseriesbox`) join `gox`)) where ((`gatch`.`gatchID` = `gest`.`gatchID`) and (`gox`.`goxID` = `gestseriesbox`.`goxID`) and (`gest`.`gestID` = `gestseriesbox`.`gestID`)) order by `gatch`.`gatchID` desc,`gest`.`gestID` desc;
SELECT version() : 5.1.30
Wie kann ich jetzt die Performance von meinem Join verbessern ? Mehrere Views und jedes mal 2 Tabellen joinen ? LIMIT benutzen ?
Danke im voraus.
Comment