Phoenix Datenbank Optimierer

  • 20 MB die keine echten 20 MB sind? Entschuldige bitte, aber dieser Optimierer ist soweit Sinnlos. MySQL hat keinerlei Probleme eine Datenbank welche 20 MB im DUMP (in dem für jeden Wert der INSERT QUERY ausgeschrieben ist) zu verwalten.

    In einem SQL-Dumps sind also - von mir grob geschätzt - 70% des Inhaltes Query Anweisungen. 70% von 20 MB sind 14 MB. Deine Datenbank ist also 6 MB groß. Wenn du nicht gerade einen Taschenrechner zum Betreiben deines SQL Servers verwendest, wird das keinerlei Performanceprobleme geben.

    Ich würde so aus dem Bauch heraus schätzen, dass MySQL in der Standardkonfiguration mit gut 120 MB REINEN DATEN unter 100 MS arbeiten kann (Read und Write).

    Das Löschen von Loggs finde ich zudem sehr bedenklich: Diese Loggs verbrauchen zwar extrem viel Speicher, sind aber keineswegs unnütz. Bei solch kleinen Datenbanken brauchst du dir keine Sorgen um Performance zu machen. Die Habbo.mn Datenbank hatte zum Beispiel eine Größe von ca. 40 GB (Screen kann ich bei Bedarf anfügen) an ROHDATEN (als SQL Dump ausgedrückt ca. 70 GB) und konnte durch die richtige Optimierung Querys immer unter 3 MS verarbeiten. Chatlogs, Freundschaftsanfragen und sämtliche anderen Daten, die in anderen Hotels häufig gelöscht werden, habe ich aus "Performancegründen" niemals gelöscht. Zudem kommt, dass im MN eine Menge weiterer Infos geloggt wurden (z.B. jeder einzelne Tausch).

    Auch liefen auf dem gleichen Server noch weitere Datenbanken, welche an Rohdatein mehr als 360 GB belegten (z.B. Hoteleigene Statistiken oder Überwachungssysteme). Und nein, ich verwendete keine hoch angepriesene Datenbank wie MariaDB sondern eine ganz normale MySQL 5.5 Community Installation.

    Was ich dir damit sagen möchte: Versuche deine Datenbank zu vernünftig zu optimieren und nicht einfach alles zu löschen und das als "Optimierung" zu bezeichnen.


    :!: FileXs #Lieblingsmod. :!:
    ... still making kids cry since 2015.

  • nicht einfach alles zu löschen
    wer hat gesagt, dass er den mysql server tunet oder auf was willst du eingehen? klar ist es möglich aber ich werd keine änderungen an einer mysql config machen, da diese vor & nachteile hat, weil es von der hardware abhängig ist -> man wird ja auch zB.: keine query cache size auf 4 gb einstellen wenn der kundenserver 2 gb arbeitsspeicher enthält? ( muss man halt manuell einstellen, oder es gibt automatisierte tools dafür )
    [ es werden auch neben dem löschen die tabellen optimiert ]


    Wie optimierst du denn bitteschön die Tabellen?

    Code
    OPTIMIZE TABLE chatlogs


    ... vielleicht? Das bringts nicht. Erst Recht nicht bei 5 MB großen Tabellen.
    Zudem ist nicht die Größe des RAMs entscheidend wie schnell oder gut ein PC oder Server ist. Je nach Einsatzgebiet sind Festplattengeschwindigkeit oder CPU um einiges wichtiger. Aber irgendwie hält sich hartnäckig der Irrtum, dass mehr RAM = besserer Computer bedeutet ?( . Und ich mein: 2 GB Ram für 6 MB Daten sind doch mehr als ausreichend.


    In einem SQL-Dumps sind also - von mir grob geschätzt - 70% des Inhaltes Query Anweisungen:
    werden Daten auch nicht in einer Queryanweisung eingebunden? nehme mal an, dass du damit die Struktur der Tabellen animmst aber okay.


    Dann öffne mal deine SQL Dumps:

    SQL
    INSERT INTO chatlogs (id,username,timestmp,messetsch,hour,minute) VAUES 1, 'a','b','c','d'


    Die Values sind die wirklichen Daten... Du denkst doch nicht ernsthaft, dass ein SQL Server so etwas intern für die Speicherung der Einträge verwendet? Ich mein, da sieht doch jeder Blinde mit nem Krückstock wie viel Ressourcen dort an den Beginn des Querys verloren gehen. Zudem müsste dann jeder Query erneut aufwenig geparst werden.


    Versuche deine Datenbank zu vernünftig zu optimieren und nicht einfach alles zu löschen und das als "Optimierung" zu bezeichnen.
    man kann entweder client seitig was unternehmen ( am code ) oder server seitig ( wie erwähnt mysql config ), bitte gib uns deine edlen Datenbankoptimierungen die einer 1 Terabyte Datenbank unter 3 ms laufen lässt.


    Kein Problem. Ab in nen Cluster mit der Datenbank und schwupps hast du mit ner 100 TB großen Datenbank keine Probleme mehr. Ich habe schon Datenbanken mit bis zu 3 TB für ein mittelständiges Unternehmen verwaltet.


    PS.: Solch große Datenbanken dumpt man nicht. Man kopiert einfach die Rohdatein. Der Rest ist nur verschwendete Lebenszeit. Und ich mein: Kopier mal einen 40 GB großen Ordner. Dauert keine 10 Minuten... ;)


    :!: FileXs #Lieblingsmod. :!:
    ... still making kids cry since 2015.

    Einmal editiert, zuletzt von Aapoh (3. April 2015 um 14:40)

  • Nein :/

    Wie startet dann dein Emulator, hast du ihn mit VS compiled mit der einstellung ( keine lokale kopie ) xD?
    Schau hier kannst du die MySql.Data.dll downloaden, platzier sie einfach im Phoenix ordner wo der Phoenix Emulator und der Optimierer ist:
    MySql.Data

    Discord: prox#8747

    ___

    Look at yourself in the mirror and tell me what a man is without pride.
    Tell me what a man is without fire in his eyes

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!