[MDEV-24550] Probleme mit der Datenrate von MySQL 10.5 zu MariaDB Created: 2021-01-08 Updated: 2023-11-09 Resolved: 2023-11-09 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Configuration, Storage Engine - Aria |
| Fix Version/s: | N/A |
| Type: | Task | Priority: | Major |
| Reporter: | Tobias Beißmann | Assignee: | Unassigned |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | optimizer, performance | ||
| Attachments: |
|
| Description |
|
Hallo, Tabelle mit 7,4GB Daten und ca. 75 Millionen Einträgen siehe auch Dateien. Hoffe sie können mir helfen? Mit freundlichen Grüßen |
| Comments |
| Comment by Marko Mäkelä [ 2021-01-08 ] | ||||||||||||||||||||
|
In 2021-01-08 16_44_39-Datenbank.png Bei schreibintensivem Einsatz möchte ich auf | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-08 ] | ||||||||||||||||||||
|
Maria DB 10.5.6 ist im Einsatz. Deswegen Aria oder hat sich das geändert? | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-01-08 ] | ||||||||||||||||||||
|
Es kommt auf die Tabellenstruktur und die Art der Anfragen an. Ohne SHOW CREATE TABLE oder EXPLAIN SELECT kann man nicht viel sagen. Aber ja, seit 10.5.6 wurde die Schreibleistungsfähigkeit von InnoDB in | ||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2021-01-08 ] | ||||||||||||||||||||
|
was bedeuten die Werte in PERFORMANCE RESULTS ? | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-08 ] | ||||||||||||||||||||
|
Umgekehrt Aria ist schneller als innodb | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-01-09 ] | ||||||||||||||||||||
|
Tobias.Beissmann@egoproducts.com, können Sie uns mehr Daten geben? Ideal wäre eine Skript, die das Problem mit automatisch erzeugten Daten demonstriert. Könnten Sie uns mindestens folgendes teilen (in Textformat):
Die Tabellen- und Spaltennamen können Sie ändern, falls sie geheim sind. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-11 ] | ||||||||||||||||||||
|
CREATE TABLE `qs_master` ( EXPLAIN SELECT
-----
| ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-01-11 ] | ||||||||||||||||||||
|
Ich merke, dass die Tabelle keinen Primärschlüssel enthält. Das dürfte aber bei ENGINE=Aria keinen großen Unterschied machen; bei InnoDB vielleicht schon. Würde die Abfrage tatsächlich 706.872 Zeilen liefern? Ich befürchte, dass wir ohne eine ausführbare Skript nicht weitermachen können. Unsere Support könnte Sie vielleicht schon helfen. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-11 ] | ||||||||||||||||||||
|
Ja das stimmt mit der Menge. Was meinen sie mit ausführbarem Skript? MariaDB habe ich mittlerweile auf 10.5.8 upgedatet. | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-01-11 ] | ||||||||||||||||||||
|
Tobias.Beissmann@egoproducts.com, am einfachsten wäre uns ein Programm, dass die Tabelle anlegt und die Datenmenge erzeugt, so dass das Ergebnis beobachtet werden kann. Das Programm könnte SQL erzeugen, irgendwie so wie
Am einfachsten wäre das z.B. eine Perl-Skript, die sich beim Bedarf einfach ändern läßt. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-11 ] | ||||||||||||||||||||
|
Wenn Ich weiß wie, kann ich das gerne tun. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-14 ] | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-01-14 ] | ||||||||||||||||||||
|
Tobias.Beissmann@egoproducts.com, screenshot-1.png "Using index condition" soll nur möglich sein, wenn ein Index angewendet wird (wie KEY(START) und WHERE START… in der ursprünglichen Tabelle). Ich hoffe, dass ich mich verständlich gemacht habe. Deutsch ist meine dritte Fremdsprache. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-01-14 ] | ||||||||||||||||||||
|
Ich habe den Benchmark Test von der MariaDB Seite (https://mariadb.com/kb/en/benchmarking-aria/) ausgeführt, weil ich dachte man kann hier etwas feststellen, woran das Problem liegt. Ich habe noch mehrere Einstellungen an der my.ini vorgenommen, jedoch hat keine Änderung die Bandbreite erhöht, so dass ich mehr Daten übertragen kann. Ich habe die qs_master Tabelle in InnoDB geändert und die Geschwindigkeit beim Auslesen, hat sich nicht verändert. ~9k Datensätze / Zyklus zu PowerBi | ||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2021-01-14 ] | ||||||||||||||||||||
|
Wenn der Server nicht vom Disk liest (die Daten alle im Innodb Bufferpool), wäre es schon ein Erfolg. Sonst kann es natürlich liegt es auch an dem Klienten, wie schnell die daten rausgelesen werden, und an der menge der rausgelesenen Daten. Es kann sein, daß ODBC, oder welche Klienttechnologie auch immer sich unter diesem PowerBI verbirgt, das diese Komponente am Ende die Applikation ausbremst. | ||||||||||||||||||||
| Comment by Tobias Beißmann [ 2021-03-30 ] | ||||||||||||||||||||
|
Hallo, [mysqld] innodb_log_file_size=80M | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2023-11-09 ] | ||||||||||||||||||||
|
Tobias.Beissmann@egoproducts.com, es tut mir leid, ich hatte Ihre Antwort übersehen. Der Parameter innodb_log_file_size=80M ist sehr gering im Vergleich zu innodb_buffer_pool_size=24G. Ich habe eine Empfehlung gesehen, dass die Pufferpool-Größe etwa 60% bis 80% des Hauptspeichers betragen sollte, je nach dem, was für andere Puffer für die Arbeitslast nötig sind, oder was für andere Dienste auf dem System laufen. Wenn es um die Log-Größe geht, habe ich eine Empfehlung gelesen, dass die Größe etwa dem Wachstum von LSN in einer Stunde entsprechen sollte. Eine zu kleine Logdatei wird häufige Log-Checkpoints und dadurch Schreiben der veränderten Datenseiten verursachen. So weit ich verstehe, ist die Log-Größe von Aria nicht begrenzt: neue Dateien können beim Bedarf angelegt werden. In InnoDB wird die Logdatei zyklisch beschrieben. Vor In MariaDB Server 10.6 wurde die Leistungsfähigkeit von InnoDB weiter verbessert. |