schumischumi
Lt. Commander
- Registriert
- Dez. 2011
- Beiträge
- 1.056
Hi,
ich steh anscheinend zur Zeit bissl auf dem Schlauch und benötige eure Hilfe.
und zwar habe ich eine kleine inventarisierungoberfläche in php gebaut aber eine spezielle MySQL Abfrage dauert "ewig" (> 2 Sekunden).
Die Struktur sieht so aus:
Das ganze ist eine n zu n Beziehung und Tabelle 2 ist folgendermaßen und wahrscheinlich eher suboptimal aufgebaut:
Dh es sind alle Geräte aus Tabelle 1 mit jeweils jeder installierten SW aufgelistet. Insgesamt umfasst diese tabelle 360000 Einträge da für jede Software pro Gerät ein neuer eintrag gemacht wird.
Der Abfragestring sieht folgendermaßen aus:
Der Left-Befehl bei den Join Bedingungen wird deshalb verwendet, da der inventarisierungsclient das ganze eher unsauber (mit Zeilenumbruch bzw. \n) abspeichert. Das könnte ich allerdings noch beheben.
wie könnte ich die Tabellen sinnvoller aufbauen um mehr Performance zu bekommen?
Thx für eure Zeit
ich steh anscheinend zur Zeit bissl auf dem Schlauch und benötige eure Hilfe.
und zwar habe ich eine kleine inventarisierungoberfläche in php gebaut aber eine spezielle MySQL Abfrage dauert "ewig" (> 2 Sekunden).
Die Struktur sieht so aus:
Code:
---------------------------------
| Tabelle1 |
---------------------------------
| Gerätename (String) / PK |
| IP (String) |
| MAC (String) |
| ... |
---------------------------------
---------------------------------
| Tabelle2 |
---------------------------------
| Gerätename |
| Softwarename |
---------------------------------
Das ganze ist eine n zu n Beziehung und Tabelle 2 ist folgendermaßen und wahrscheinlich eher suboptimal aufgebaut:
Code:
Gerätename Softwarename
------------ -----------------
notebook1 nero
notebook1 notepad
notebook1 calc
notebook2 calc
notebook2 iexplorer
Der Abfragestring sieht folgendermaßen aus:
Code:
select Gerätename, IP, MAC from Tabelle1 left join Tabelle2 on (Gerätename.Tabelle1 = left(Gerätename.Tabelle2,6)) where Softwarename.Tabelle1 like 'Nero';
Der Left-Befehl bei den Join Bedingungen wird deshalb verwendet, da der inventarisierungsclient das ganze eher unsauber (mit Zeilenumbruch bzw. \n) abspeichert. Das könnte ich allerdings noch beheben.
wie könnte ich die Tabellen sinnvoller aufbauen um mehr Performance zu bekommen?
Thx für eure Zeit
Zuletzt bearbeitet:
(tippfehler)