Große Datenbanken - Designproblem

Mahlzeit ...

Ich stehe gerade vor dem Problem ein Datenbankdesign für eine relativ umfangreiche Datenmenge zu erstellen.
Genauer gesagt handelt es sich um genau 10 Millionen Datensätze mit der folgenden Struktur einer "flat table".

Code:
mysql> desc test_tab;
+--------------+------------+------+-----+---------+----------------+
| Field        | Type       | Null | Key | Default | Extra          |
+--------------+------------+------+-----+---------+----------------+
| id           | int(11)    | NO   | PRI | NULL    | auto_increment |
| first        | char(13)   | NO   | MUL | NULL    |                |
| second       | char(12)   | NO   | MUL | NULL    |                |
| third        | char(11)   | NO   | MUL | NULL    |                |
| attribute1   | tinyint(1) | NO   | MUL | 0       |                |
| attribute2   | tinyint(1) | NO   |     | 0       |                |
| attribute3   | tinyint(1) | NO   |     | 0       |                |
| attribute4   | datetime   | YES  | MUL | NULL    |                |
+--------------+------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)


Auf allen Feldern liegen Keys. Die Tabelle wurde mit Testdatensätzen gefüllt, wobei die Attributfelder zufällig auf 0 oder 1 gesetzt wurden, um eine maximale Ausschöpfung der Daten im Endstadium zu simulieren.
Es handelt sich z.B. um folgendes SELECT Statement.

SQL:
SELECT second, count(first) as anz FROM test_tab WHERE attribute1 = 0 AND attribute2 = 0 GROUP BY second HAVING anz % 10  = 0 LIMIT 50;

Momentan dauert das Statement auf einer "schwächeren" Kiste, ca. 15 Sekunden.
Ich suche nach Wegen, Feedback oder Alternativen um eine Query zu beschleunigen!?


Danke & Gruß,
Luke
 
M

Marcinek

Gast
15 Sekunden bei 10 Millionen Datensätzen und dieser Query schon i.O.

Was du machen könntest ist die Datenbank tables sinvoll zu partitionieren.
 

Lumaraf

Bekanntes Mitglied
Auf allen Feldern liegen Keys. Die Tabelle wurde mit Testdatensätzen gefüllt, wobei die Attributfelder zufällig auf 0 oder 1 gesetzt wurden, um eine maximale Ausschöpfung der Daten im Endstadium zu simulieren.
Es handelt sich z.B. um folgendes SELECT Statement.

SQL:
SELECT second, count(first) as anz FROM test_tab WHERE attribute1 = 0 AND attribute2 = 0 GROUP BY second HAVING anz % 10  = 0 LIMIT 50;

In dem Fall hilft es relativ wenig einzelne Indizes pro Spalte anzulegen. Ein Index über die benötigten Felder in der richtigen Reihenfolge hilft da deutlich mehr.
Code:
CREATE INDEX attr_combined ON test_tab (attribute1,attribute2,second)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Große Datensätze, kleine Rechte Datenbankprogrammierung 8
Joew0815 Datenmerge große Tabelle Datenbankprogrammierung 16
E MySQL Große Datenmengen reibungslos speichern für Gameserver Datenbankprogrammierung 6
T 3 GB Große CSV Datei einlesen und in SQL-DB schreiben Datenbankprogrammierung 12
P Embedded Database und große Datenmengen Datenbankprogrammierung 23
A Große Datenmengen mit JPA 2.x verarbeiten Datenbankprogrammierung 13
F Große Datei in MySQL importieren Datenbankprogrammierung 10
A Große Objekte mit JPA und Hibernate Datenbankprogrammierung 3
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
F JAVA und große Datenabfragen Datenbankprogrammierung 7
M Problem: Große Datei in MySQL DB importieren. Datenbankprogrammierung 12
R hsqldb: performance, große tabellen und so Datenbankprogrammierung 10
rambozola große anzahl an inserts bei oracle db unperformant Datenbankprogrammierung 15
T Große Datenmenge bei DB- Abfrage Datenbankprogrammierung 5
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
R Datenbanken erstellen Datenbankprogrammierung 3
I Hilfe zu Multidimensionalen Datenbanken Datenbankprogrammierung 1
D Java Datenbanken Datenbankprogrammierung 1
T Lagerprogramm mit Datenbanken Datenbankprogrammierung 21
K Verschiedene Datenbanken - Was sollte ich lernen? Datenbankprogrammierung 11
M SQLite Zwei Datenbanken synchronisieren Datenbankprogrammierung 8
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
M Hash in Bezug auf Datenbanken unklar Datenbankprogrammierung 3
M Datenbankschema in relationalen Datenbanken Datenbankprogrammierung 3
Ananaskirsche Verschlüsselung von Datenbanken Datenbankprogrammierung 1
T Datenbanken-PDF Datenbankprogrammierung 15
Y Derby/JavaDB Benutzung von eingebetteten Datenbanken Datenbankprogrammierung 4
G Datenbanken in Java Datenbankprogrammierung 9
K Zwei Datenbanken miteinander auf Unterschiede vergleichen Datenbankprogrammierung 2
T 2 Tabellen aus 2 Datenbanken miteinander vergleichen Datenbankprogrammierung 6
B Datenbanken schützen vor Zugriff Datenbankprogrammierung 3
M Beziehungsfrage Datenbanken Datenbankprogrammierung 5
E Zwischen Datenbanken wechseln Datenbankprogrammierung 13
L Synchronisieren von 2 Datenbanken Datenbankprogrammierung 2
T a x b x c x....n Matrizen in Datenbanken Datenbankprogrammierung 5
P DatenBanken mit Netbeans erstellen Datenbankprogrammierung 17
K Grundfragen zu Datenbanken Datenbankprogrammierung 28
H Rechnen in Datenbanken - JDBC Mittel der Wahl? Datenbankprogrammierung 32
J Unterstützung für verschiedene Datenbanken Datenbankprogrammierung 2
T MySQL Auflistung aller Datenbanken??? Datenbankprogrammierung 9
J In viele verschiedene Datenbanken einfügen Datenbankprogrammierung 3
C MySQL Hibernate mit 2 Datenbanken Datenbankprogrammierung 12
V Hibernate mit 2 Datenbanken Datenbankprogrammierung 3
W MySQL Datenbanken auslesen Datenbankprogrammierung 3
M prinzipielle Frage zu Datenbanken und jars ... Datenbankprogrammierung 2
R PreparedStatement mit verschiedenen Datenbanken Datenbankprogrammierung 2
brainray Bei MySQL alle Datenbanken eines Servers abfragen Datenbankprogrammierung 3
R 1 Programm, 2 Datenbanken Datenbankprogrammierung 15
S Standard für Datenbanken Datenbankprogrammierung 3
R Datenbanken, Tabellen normalisieren. Datenbankprogrammierung 1
G Datenbanken abgleichen Datenbankprogrammierung 4
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
G Effektive Methode zum durchsuchen von SQL-Datenbanken Datenbankprogrammierung 7
M Datenbanken synchronisieren Datenbankprogrammierung 2
P Datenbanken auswahl, anforderungen Datenbankprogrammierung 29
K Daten in Datenbanken einfügen Datenbankprogrammierung 6
G H2: Erstellen von Datenbanken verhindern Datenbankprogrammierung 2
Y Datenbanken Datenbankprogrammierung 6
M Maximale Kapazität von Datenbanken Datenbankprogrammierung 2
S Objektorientierte Datenbanken Datenbankprogrammierung 4
F Zwischen Datenbanken wählen auf SQL-Server Datenbankprogrammierung 4
G Umlaut-Problem mit Firebird Datenbanken Datenbankprogrammierung 8
I Datenbanken mit MySQL einrichten Datenbankprogrammierung 11
G Step-by-Step Anleitung für Datenbanken Datenbankprogrammierung 3
N Abfrage über zwei Datenbanken Datenbankprogrammierung 9
M Treiber für mysql Datenbanken Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben