Bitte Hilfe für mySQL in einem Query

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, ich habe ein Performanceproblem mit folgendem Sachverhalt unter mySQL, wäre schön wenn mir jemand von euch helfen kann :)

Ich habe folgende Tabellen:

Code:
Tabelle1 (ca. 700.000 Sätze)
---------
nr(long)
datum(date)

Tabelle2 (ca. 1.000 Sätze)
---------
nr2(long)
typ(date)

Nun möchte ich alle Sätze haben, bei denen folgende Eigenschaften gegeben sind:

(Tabelle1.nr = Tabelle2.nr2 und kein Tabelle1.datum > (heute-10 tage) und Tabelle2.typ = 1) und alle von Tabelle2, die keine Übereinstimmung mit Tabelle1.nr haben.

Mein Query sieht momentan wie folgt aus:

Code:
SELECT 
Tabelle2.nr2, 
Tabelle1.nr, 
max(Tabelle1.datum)as deadline
FROM 
Tabelle2 
LEFT JOIN 
Tabelle1 
ON 
Tabelle1.nr = Tabelle2.nr2 
GROUP BY 
Tabelle1.nr  
HAVING (
(deadline > (NOW() - INTERVAL 10 DAY)) = 0 
OR 
Tabelle2.nr2 IS NULL 
) AND 
Tabelle2.typ = 1 
ORDER BY 
Tabelle1.nr

Funktionert auch soweit ganz gut. Jedoch dauert die Abfrage trotz Index, optimize table auf recht guter Hardware ganze 15 Sekunden.

Ich bin jetzt nicht so der SQL-Profi, dass ich da eine schnellere Methodik finden kann.

Hat von euch jemand eine leuchtende Idee? :)

Danke!
 

KSG9|sebastian

Top Contributor
sicher das es an der sql liegt ? führst du die anweisung in nem sql tool aus (query browser...) oder ausm code raus ?

zeig mal den code her, falls es welchen gibt
 

Bleiglanz

Gesperrter Benutzer
worauf ist ein Index

doch hoffentlich einer auf

Tabelle1.nr

und einer auf

Tabelle2.nr2

Code:
SELECT
Tabelle2.nr2,
Tabelle1.nr,
max(Tabelle1.datum)as deadline
FROM
Tabelle2
LEFT JOIN
Tabelle1
ON
Tabelle1.nr = Tabelle2.nr2
GROUP BY
Tabelle1.nr, Tabelle2.nr2 

-- hier müssen beide stehen!!!
-- oder oben in der SELECT Klausel eine weglassen
 
HAVING 
(
   (deadline > (NOW() - INTERVAL 10 DAY)) = 0 
   OR

-- jetzt wirds unsinnig: warum das IS NULL
-- bei einem LEFT JOIN
-- und wenn, dann gehört das ins WHERE!

   Tabelle2.nr2 IS NULL
) 
AND

-- das nächste ist auch unsinnig
-- im Having ist ja schon gruppiert!
-- auch das gehört ins WHERE

    Tabelle2.typ = 1
ORDER BY
Tabelle1.nr
 
G

Gast

Gast
Auf nr und nr2 etc. ist ein Index gesetzt.

warum das IS NULL
-- bei einem LEFT JOIN

Damit ich auch die Datensätze sehe, die in Tabelle1 keine Übereinstimmung zu nr2 haben. In das where kann das nicht, weil sich das auf das

(deadline > (NOW() - INTERVAL 10 DAY)) = 0
OR

bezieht und den Alias "deadline" kann ich in der where-Klausel ja nicht ansprechen.
 

Bleiglanz

Gesperrter Benutzer
(Tabelle1.nr = Tabelle2.nr2 und kein Tabelle1.datum > (heute-10 tage) und Tabelle2.typ = 1) und alle von Tabelle2, die keine Übereinstimmung mit Tabelle1.nr haben.
was willst du eigentlich mit "alle von Tabelle2, die keine Übereinstimmung mit Tabelle1.nr haben", bei denen kommt doch eh nur NULL,NULL heraus??

auf jeden fall kannst du

Tabelle2.nr2 und Tabelle2.typ

nicht in der HAVING-Klausel benutzen, weil sie nicht in deiner GROUP-BY vorkommen!!!

eher sowas
Code:
SELECT Tabelle2.nr2, max(Tabelle1.datum) AS deadline

FROM Tabelle2 LEFT JOIN Tabelle1                                                 

ON (Tabelle1.nr = Tabelle2.nr2)

WHERE
    Tabelle2.typ = 1

GROUP BY 
    Tabelle2.nr2

HAVING
    (deadline IS NULL) OR (deadline > (NOW() - INTERVAL 10 DAY)) 

ORDER BY
    Tabelle2.nr2
davon abgesehen ist die Performanz eh noch gut

700.000 x 1000 (zusammengeschlagen durch die Indizes)

kann nicht superfix gehen...
 
G

Gast

Gast
"alle von Tabelle2, die keine Übereinstimmung mit Tabelle1.nr haben",

Nein, dann kommt nr, null raus.

Es geht darum, dass Tabelle2 eine Artikeltabelle ist und Tabelle1 alle Verkäufe speichert.

So kann ich sehen welche Artikel noch nie bzw. in den letzten 10 Tagen nicht verkauft wurden um am Preis oder so zu drehen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Berechtigungskonzept - Bitte um Feedback Softwareentwicklung 5
1 Factory-Pattern: Bitte um Tipps zur Anwendung Softwareentwicklung 3
R Ajax-Framework mit Backbutton - bitte testen Softwareentwicklung 4
L Bitte nicht steinigen. Softwareentwicklung 10
thE_29 Vor dem ersten Posten bitte lesen! Softwareentwicklung 0
N Hilfe bei Chromedriver Softwareentwicklung 1
T Hilfe - Wie wird man zum Profi Softwareentwicklung 14
Thallius Hilfe bei SDS Document Softwareentwicklung 1
H [Java]Regex Hilfe Softwareentwicklung 3
M C# aufgabe hilfe Softwareentwicklung 3
Jay_030 Hudson: Hilfe bei Sonar-Integration Softwareentwicklung 4
W HILFE.>Kassendiagramm Softwareentwicklung 11
A Hilfe benötigt! Schulprojekt: Quiz Softwareentwicklung 2
N Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen Softwareentwicklung 4
I Object mit Hilfe eines Class-Objectes instanzieren Softwareentwicklung 3
F HTML Hilfe Softwareentwicklung 4
C Datumsberechnung Mit Hilfe von 2 Werten Softwareentwicklung 4
S Hilfe für anfänger Softwareentwicklung 7
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
V Zeitplanung für JUnit-Tests? Softwareentwicklung 9
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
G Pattern für Datenbank Anwendung Softwareentwicklung 22
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9
D Programme für UML Softwareentwicklung 3
A Was ist die richtige Lizenz für mich? Softwareentwicklung 2
R Tool für Anforderungsermittlung, Bugtracking und Test Softwareentwicklung 4
V Antwort bewerten (Nur etwas für Experten!) Softwareentwicklung 15
D cheat für ein spiel fixen Softwareentwicklung 19
F IDE für VB Softwareentwicklung 4
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
S Beispiel für MVC gesucht Softwareentwicklung 53
F Kleines Programm für Windows Softwareentwicklung 2
K Buch oder Online-Tutorium für Programmentwicklung (Anfänge) Softwareentwicklung 5
J Beispiel für Besuchermuster Softwareentwicklung 6
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
M Disclaimer für eigene Programme? Softwareentwicklung 3
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
S Open Source Software für UML Softwareentwicklung 8
R Ein Thread für eine Methode Softwareentwicklung 2
I regualar expression für Konstruktoren Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben