Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Speicherverwaltung bei InnoDB

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Questioner, 21 November 2013.

  1. Questioner

    Questioner Neuer Benutzer

    Hallo Leute,

    die Standardeinstellung von InnoDB ist ja bekanntlich, dass alle Daten aller Tabellen in eine Datei geschrieben werden. Werden Daten aus einer Tabelle gelöscht, wird die Datei jedoch nicht kleiner, da der Speicherplatz sozusagen reserviert wird.

    Jetzt würde mich nur interessieren, ob andere Tabellen der selben Datenbank diesen "freien" Speicher auch nutzen können, oder ob dieser für jede Tabelle seperat verwaltet wird.

    Sagen wir Tabelle X hat 50MB und Tabelle Y 10MB. Die gesamtgröße der ibdata1 hat demnach ca. 60MB.
    Lösche ich nun aus Tabelle X soviele Daten, dass sie eigentlich nur noch 5MB hätte, bleibt die Größe der ibdata1 konstant. Wächst diese aber weiter an, wenn ich Tabelle Y mit Daten fülle oder nutzt diese dann den freien Platz, den die Tabelle X hinterlassen hat?

    Liebe Grüße
    Questioner
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Probier es aus. Falls man schon MySQL/InnoDB will, dann will man eigentlich innodb_file_per_table.
     
  3. Questioner

    Questioner Neuer Benutzer

    Na dann hätte ich ja nicht fragen müssen... Bei innodb_file_per_table ist es ja definitiv so, dass jede Tabelle ihren eigenen Speicherbereich vorhält. D.h. die gesamte Kapazität steigt beim Füllen von Tabelle Y weiter an, obwohl in der Datei von Tabelle X noch genügend Platz vorhanden wäre...
    Daher wollte ich wissen ob freigewordene Kapazitäten von allen Tabellen genutzt werden können, da dies ja effizienter wäre.
    Aber dass Du nicht viel von MySQL weißt, hast mir ja schon einmal geschrieben und Du bist auch der einzige der hier antwortet. Vielen Dank dafür.
    Ansonsten scheint dieses Forum hier aber (zumindest im MySQL-Bereich) ziemlich tot zu sein. Ich versuche mein Glück wohl besser mal wo anderes...
    Aber trotzdem vielen Dank für deine Mühen.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Sag bitte aber auch hier Bescheid, was Du erforscht hast.
     
  5. enseth439

    enseth439 Aktiver Benutzer

    Das ist allerdings auch keine leichte Frage. Es kommt wohl drauf an wie die Daten freigegeben wurden. Bei einem Drop Table soll das funktionieren, bei einzelnen Einträgen kommt es wohl darauf an wie die zusammenhängen. Ich würde es aber auch ausprobieren und schauen. Dann hat man das Verhalten sicher ermittelt.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden