2017-02-03 3 views
1

Ich verwende MySQL-Tabellen und möchte mehr als 10 Millionen Daten in einer einzigen Abfrage für Reporting-Zwecke abrufen.Der beste Weg, Millionen von Datensätzen Tabelle mit Hibernate zu holen

Meine Tabelle könnte auch Fremdschlüssel enthalten. Ich verwende Hibernate-Abfragen zum Abrufen der Daten. Der abfragende Teil benötigt ungefähr 20-30 Sekunden.

Gibt es eine Möglichkeit, das zu optimieren? Indizierung der Tabellen in MySQL wird Ihnen helfen?

+7

"Gibt es eine Möglichkeit, das zu optimieren?" Ja, verwende Hibernate nicht für Berichte. – Kayaman

+0

_Das Indexieren der Tabellen in MySQL hilft Ihnen dabei? _ Natürlich. Ohne Index muss diese ohne Referenzen gesucht werden. Aber wie könnte man so viele Daten ohne Indizes haben ... – AxelH

+0

Hmm, ich vermute, dass die Übertragung der Daten einige Zeit in Anspruch nimmt. Überprüfen Sie Ihre Abfrage, indem Sie nur eine Anzahl oder so wenig Daten wie möglich zurückgeben. Rufen Sie auch in Ihrer Anfrage auf, ob es irgendwo optimiert werden kann. Das ist alles auf der SQL-Seite, Hibernate würde dann jedoch Overhead zum Erstellen von Entitäten hinzufügen. Wenn Sie dagegen nur Entity-Eigenschaften/-Felder und nicht ganze Entitäten auswählen, können Sie auch überprüfen, ob Sie Hibernate dafür umgehen, d. H. Stattdessen einfach SQL verwenden. – Thomas

Antwort

Verwandte Themen