<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=InnoDB</id>
	<title>InnoDB - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=InnoDB"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=InnoDB&amp;action=history"/>
	<updated>2026-05-25T02:46:00Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=InnoDB&amp;diff=258570&amp;oldid=prev</id>
		<title>imported&gt;Phzh: Form, typo</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=InnoDB&amp;diff=258570&amp;oldid=prev"/>
		<updated>2025-09-13T22:25:10Z</updated>

		<summary type="html">&lt;p&gt;Form, typo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
| Logo                                     = &lt;br /&gt;
| Screenshot                               = &lt;br /&gt;
| Beschreibung                             = &lt;br /&gt;
| Maintainer                               = &lt;br /&gt;
| Hersteller                               = Heikki Tuuri, Innobase Oy Inc. ([[Oracle]] Corporation)&lt;br /&gt;
| Management                               = &lt;br /&gt;
| AktuelleVersion                          = &lt;br /&gt;
| AktuelleVersionFreigabeDatum             = &lt;br /&gt;
| Betriebssystem                           = [[Unix]], [[Linux]], [[Microsoft Windows|Windows]], [[OS X]], [[i5/OS]], [[OpenVMS]]&lt;br /&gt;
| Kategorie                                = Speichersubsystem&lt;br /&gt;
| Lizenz                                   = [[Duales Lizenzsystem]] ([[Kommerziell]] und [[GNU General Public License]])&lt;br /&gt;
| Deutsch                                  = nein&lt;br /&gt;
| Website                                  = [http://www.innodb.com/ innodb.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;InnoDB&amp;#039;&amp;#039;&amp;#039; ist ein [[Freie Software|freies]] [[MySQL#Speichersubsysteme|Speichersubsystem]] für das [[Datenbankmanagementsystem]] [[MySQL]]. Sein Hauptvorteil gegenüber anderen Speichersubsystemen für MySQL ist, dass [[Transaktion (Informatik)|Transaktionssicherheit]] und [[referentielle Integrität]] über [[Fremdschlüssel]] gewährleistet werden.&lt;br /&gt;
&lt;br /&gt;
Innobase Oy, der Hersteller von InnoDB, wurde im Oktober 2005 von [[Oracle|Oracle Systems]] übernommen.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.oracle.com/us/corporate/press/016679_EN |titel=Oracle verkündet Aufkauf von Innobase, einem Hersteller von Open-Source-Software |hrsg= [[Oracle Corporation|Oracle]] |abruf=2015-01-16}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Software ist [[Mehrfachlizenzierung|doppellizenziert]]: Für [[Open Source|Open-Source]]-Anwendungen steht sie unter der [[GNU General Public License|GPL]]; für Nicht-Open-Source-Anwendungen ist daneben eine proprietäre Lizenz erhältlich.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.innodb.com/licenses.php |titel=Lizenzierung von MySQL und InnoDB |hrsg=InnoDB.com |abruf=2010-07-09}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
Bei [[MySQL]] Version 5.0 wird InnoDB bei einer Installation unter [[Microsoft Windows|Windows]] als Standard-Speichersubsystem installiert. Bei einer Installation unter [[Unix]] wird [[MyISAM]] als Standard-Speichersubsystem installiert. Seit MySQL 5.5 ist InnoDB das Standard-Speichersubsystem unter allen Systemen.&amp;lt;ref&amp;gt;[http://www.oracle.com/us/corporate/press/195726 oracle.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
InnoDB unterstützt Transaktionen, das heißt:&lt;br /&gt;
* Die in der Transaktion erfolgten Schreiboperationen können durch einen Transaktionsabbruch (&amp;#039;&amp;#039;abort&amp;#039;&amp;#039;) widerrufen werden ([[rollback]]).&lt;br /&gt;
* Wiederholte Lesezugriffe innerhalb einer Transaktion sind von Schreibzugriffen anderer Transaktionen nicht beeinflusst (&amp;#039;&amp;#039;Isolation&amp;#039;&amp;#039; aus [[ACID]]).&lt;br /&gt;
* Schreibzugriffe in einer Transaktion bewirken eine &amp;#039;&amp;#039;Schreibsperre&amp;#039;&amp;#039; der betroffenen [[Datensatz|Datensätze]] für alle anderen Transaktionen (&amp;#039;&amp;#039;Row level locking&amp;#039;&amp;#039;).&amp;lt;ref&amp;gt;siehe z.&amp;amp;nbsp;B. Pachev: Understanding MySQL Internals, Chapter 10: Storage Engines&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um explizit eine Tabelle mit InnoDB als Speichersubsystem anzulegen, kann die [[SQL]]-Option &amp;lt;code&amp;gt;ENGINE&amp;lt;/code&amp;gt; verwendet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE t (i INT) ENGINE = InnoDB;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Anmerkung: Ältere Versionen von MySQL verwenden das Schlüsselwort &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;ENGINE&amp;lt;/code&amp;gt; (Beispiel: &amp;lt;code&amp;gt;TYPE = INNODB&amp;lt;/code&amp;gt;). MySQL 5.0 und 5.1 unterstützen diese Syntax abwärtskompatibel, allerdings wird die Verwendung von &amp;lt;code&amp;gt;ENGINE&amp;lt;/code&amp;gt; empfohlen, denn seit MySQL 5.5 wird nur noch das Schlüsselwort &amp;lt;code&amp;gt;ENGINE&amp;lt;/code&amp;gt; unterstützt.)&amp;lt;ref&amp;gt;{{Webarchiv |url=http://dev.mysql.com/doc/refman/5.1/de/create-table.html |text=Archivlink MySQL – CREATE TABLE |wayback=20120129082218 |archiv-bot=}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://dev.mysql.com/doc/refman/5.5/en/create-table.html dev.mysql.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tabellenraum ==&lt;br /&gt;
&lt;br /&gt;
InnoDB speichert die Tabellenstruktur in frm-Dateien, Nutzdaten und Indizes in einem Tabellenraum. Der Tabellenraum wird vor Beginn der Arbeit mit dem Datenbankserver eingestellt und kann sich über eine oder mehrere Dateien erstrecken. Die Dateien des Tabellenraums können auf verschiedene Verzeichnisse verteilt werden. Ähnlich einer [[Partition (Informatik)|Festplattenpartition]] kann die Konfiguration des Tabellenraums nicht nachträglich angepasst werden, ohne Datenverlust zu riskieren. Nach einer Änderung der Konfiguration des Tabellenraums wird die gesamte Datenbank von einer Sicherungskopie wiederhergestellt.&lt;br /&gt;
&lt;br /&gt;
Mit der Option &amp;lt;code&amp;gt;innodb_file_per_table&amp;lt;/code&amp;gt; wird für jede Tabelle ein eigener Tabellenraum angelegt, d.&amp;amp;nbsp;h. MySQL speichert Nutzdaten und Indizes in der Datei &amp;#039;&amp;#039;t.ibd&amp;#039;&amp;#039; zusammen mit der Strukturdatei &amp;#039;&amp;#039;t.frm&amp;#039;&amp;#039; im Datenbankverzeichnis. Tabellendaten können mit der Null-Operation aus dem Tabellenraum nachträglich extrahiert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER TABLE t ENGINE=InnoDB;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Speicherfreigabe ==&lt;br /&gt;
&lt;br /&gt;
Nach dem Löschen von InnoDB-Tabellen wird der Speicher innerhalb des Tabellenraums freigegeben. Diese Freigabe wird jedoch nicht an das Betriebssystem weitergegeben, sodass die Größe der Tabellenraumdateien nicht reduziert wird. Die aufwändige Freigabe des Festplattenspeichers erfolgt durch Löschen des gesamten Tabellenraums und Wiederherstellung der Datenbank von einer Sicherungskopie.&lt;br /&gt;
&lt;br /&gt;
Eine Alternative bietet der Per-Table-Tabellenraum, bei dem für jede Tabelle eine eigene Tabellenraumdatei erzeugt und nach dem Löschen der Tabelle wieder gelöscht wird.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://magento.xonu.de/tipps-und-tricks/mysql-innodb-speicher-automatisch-freigeben/ |titel=InnoDB-Speicher automatisch freigeben |datum=2013-05-15 |abruf=2013-06-10}}&amp;lt;/ref&amp;gt; Der Nachteil dieses Modus ist, dass man einen Teil der Datenverwaltung von MySQL auf das Betriebssystem verlagert, das diese u. U. weniger effizient erledigt. Vor dem Erstellen und Füllen einer großen Tabelle kann der Per-Table-Tabellenraum zur Laufzeit aktiviert und wieder deaktiviert werden, um später den Festplattenspeicher für eine einzelne Tabelle gezielt freizugeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
SHOW VARIABLES LIKE &amp;#039;innodb_file_per_table&amp;#039;; -- aktuelle Einstellung anzeigen&lt;br /&gt;
SET @@global.innodb_file_per_table = TRUE; -- Per-Table-Tablespace aktivieren&lt;br /&gt;
CREATE TABLE a (...) ENGINE=InnoDB; -- Eine Tabelle im Per-Table-Tablespace erstellen&lt;br /&gt;
ALTER TABLE t ENGINE=InnoDB; -- Eine Tabelle nachträglich in den Per-Table-Tablespace verschieben&lt;br /&gt;
SET @@global.innodb_file_per_table = FALSE; -- Per-Table-Tablespace deaktivieren&lt;br /&gt;
CREATE TABLE b (...) ENGINE=InnoDB; -- Eine Tabelle im Tablespace erstellen&lt;br /&gt;
&lt;br /&gt;
DROP TABLE a; -- Tabelle löschen und Festplattenspeicher freigeben&lt;br /&gt;
DROP TABLE b; -- Tabelle löschen, Festplattenspeicher wird nicht freigegeben&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Sasha Pachev: Understanding MySQL Internals, O’Reilly 2007, ISBN 978-0-596-00957-1.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html Einführung in InnoDB] auf MySQL.com (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Freies Datenbankmanagementsystem]]&lt;br /&gt;
[[Kategorie:Relationales Datenbankmanagementsystem]]&lt;br /&gt;
[[Kategorie:MySQL]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Phzh</name></author>
	</entry>
</feed>