avatar_Battigoal

Technik

Begonnen von Battigoal, 30. März 2012, 19:37:09

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Homerclon

#2550
Es gibt zwar verschiedene 3050er, mit teils recht erheblichen Leistungsunterschied. Aber ja, das ist eine GPU (jede davon) für FullHD und nicht höher.

PC Kaufberatung? Starte einen Thread im Allgemeinen Off-Topic.
01100100 00100111 01101111 01101000 00100001
AJFM - Atome Sprungfeld FC: 1.Liga
Meister RL S/W, S44; 2. Liga S72 | Sieger V.Pokal W, S42
Pokal: Finale S79 | EP: Halbfinale, S77

Schappi

Gibt es hier im Forum Datenbank-Experten und ich meine nicht Access :bang:

dAb

Kommt auf die Frage an. :effe:
AJFM:
Meister: 1, 5, 6, 7, 13, 16, 28, 32
Pokal: 23, 32
Supercup: 8, 14, 17, 20, 26

:joint:

Dr. Zoidberg

Hamburg Squirrels

Schappi

#2554
Performance, Cluster, Bigdata

MySQL und ggf. Nicht SQL

Schappi

Hintergrund:

Beim AJFM gibt es zwei riesige Tabellen mit mehreren Millionen und gar Milliarden Einträgen. :panik:

Ich frage mich, ob es da nicht bessere und schnellere Alternativen für die Speicherung und Abfrage gibt als (My)SQL.


merfis

#2556
Zitat von: Schappi am 26. September 2024, 13:34:06Hintergrund:

Beim AJFM gibt es zwei riesige Tabellen mit mehreren Millionen und gar Milliarden Einträgen. :panik:

Ich frage mich, ob es da nicht bessere und schnellere Alternativen für die Speicherung und Abfrage gibt als (My)SQL.



Was genau ist das Problem?

Dauern die Anfragen zu lange? Hast du die Spalten auch ordentlich indexiert? Machst du irgendwelche komplizierte Joins? Mysql hat auch EXPLAIN für die SELECT-Statements, hast du damit probiert?

Oracle ist vielleicht die bessere und schnellere Alternative :effe:

Schappi

#2557
Gibt es Oracle kostenlos? :kratz:

Probleme? Ja, teilweise langsame Abfragen. Mag durchaus sein, dass nicht alles richtig durchgeindext ist. Normalisiert ist auch nicht alles. Und es gibt sehr komplexe Joins, ja.
Und die beiden großen Tabellen sind halt auch nicht im Backup.

Was meinst Du mit dem "Explain ausprobiert"?

merfis

Zitat von: Schappi am 26. September 2024, 15:35:48Gibt es Oracle kostenlos? :kratz:

Du hast nicht gesagt, dass es kostenlos sein muss :D :duckundweg: (War aber auch nicht ganz ernst gemeint)

Zitat von: Schappi am 26. September 2024, 15:35:48Probleme? Ja, teilweise langsame Abfragen. Mag durchaus sein, dass nicht alles richtig durchgeindext ist. Normalisiert ist auch nicht alles. Und es gibt sehr komplexe Joins, ja.
Und die beiden großen Tabellen sind halt auch nicht im Backup.

Was ist für dich langsam? Minuten? Sekunden? Vor einigen Jahren hab ich mit Indexieren etwa Faktor 300 rausgeholt. Es gab allerdings deutlich weniger Daten als bei dir (einige hundert Tausend Einträge von etwa 5 Minuten runter auf unter 1 Sekunde).

Zitat von: Schappi am 26. September 2024, 15:35:48Was meinst Du mit dem "Explain ausprobiert"?

Explain for dem select statement auf der mysql-Konsole schreiben.

EXPLAIN SELECT ...
Hab schon länger keine MysqlAdmin benutzt, aber wenn ich mich richtig erinnere gab es da auch Explain.

Kannst sonst die Schemas von den Tabellen und die SQL-Abfragen posten, und ich guck mir das an. Oder frag bei Stackoverflow, da lesen genug schlaue Leute mit.

dAb

#2559
Es gab früher immer eine kostenlose Expressversion von Oracle.
Keine Ahnung, ob die noch existent ist. Ist halt aber auch eingeschränkt.
Leider lässt sich  Oracle aber sonst auch alles lizensieren. Aber dafür gibt es halt auch noch Sachen wie Partitioning etc., mit denen man so Sachen tunen kann.

Aber wie merfis sagt, man muss sich das anschauen. Explain Plans sind der erste Schritt. Die sagen dir was jeder einzelne Befehl kostet und ob ein Index dafür genutzt wird oder zum Beispiel ein Full Table Scan gemacht wird, der dementsprechend teuer sein kann.
AJFM:
Meister: 1, 5, 6, 7, 13, 16, 28, 32
Pokal: 23, 32
Supercup: 8, 14, 17, 20, 26

:joint:

Schappi

#2560
Muss ich mal in Ruhe raussuchen.

Aber mich stört zum beispiel, dass die Spielberechnung, die viele Inserts beinhaltet, recht lange dauert. pro Spiel ca. 30 Sekunden, wenn ich mich recht erinnere. Das muss doch schneller gehen.

ALs Beispiel:

Jedes Spiel hat 542 Spielzüge.
Jeder Spieler hat 1 Werteeintrag pro Spielzug = 11 * 2 * 542 = 11924 Werteeinträge pro Spiel.
Jeder Spieler muss nach dem Spiel aktualisiert werden. 22 Spieler/Mensch Updates.

Dazu kommen noch eine Handvoll anderer Inserts, die aber vernachlässigbar sind.

Ich glaube, die Spielzüge sind gesammelt in *einem* Insert-Statement. DIe Werteeinträge sind auch gesammelt, aber ich glaube, 100 oder 1000 Values pro Insert.

Während der DB-Aktivitäten am Ende der Berechnung eines Spiels ist die Auslastung des Containers bei 100%. Da es in der Regel viele Spiele parallel sind, entsprechend auch lange. In der Zeit ist dann auch die Webseite natürlich recht langsam.

merfis

Worüber du vielleicht auch nachdenken könntest, ist die Daten aus den vorherigen Saisons in eine andere Tabelle (oder gar in eine andere DB) zu schieben. Wenn du nur die aktuelle Saison in der Tabelle vorhältst, dann sind das am Ende "nur" 71,5 Mios Einträge (ich hab mit 6000 Spielen pro Saison gerechnet, nachdem ich kurz die Ligen überflogen hab).

Vielleicht kann man mit der Statement-Optimierung was rausholen, aber wenn so viele Inserts kommen, wird das auch irgendwann gefühlt zu langsam.

Eine andere Lösung wäre das Problem mit der Hardware zu erschlagen, z.B. einen separaten Container nur für die DB, der ordentlich Bums hat.


Schappi

Der AJFM hat schon seinen eigenen Container mit eigener MySQL Instanz

merfis

Dann hat er nicht genug Bums :D

Schappi

Aber was heißt "mehr Bums"?

2024-09-29 16_27_45-proxmox - Proxmox Virtual Environment – Mozilla Firefox.png
2024-09-29 16_27_12-proxmox - Proxmox Virtual Environment – Mozilla Firefox.png