| Falcon-Storage-Engine | |||||
|
Falcon ist eine transaktionsfähige Storage-Engine für MySQL (neben InnoDB und DBD die ebenfalls transaktionsfähig sind). Die Objekte werden bei der Falcon Storage Engine mit einer weiteren logischen Ebene verwaltet: den Tablespaces. Tablespaces Die Tablespaces werden von Falcon erstellt für Datenbankobjekte wie Tabellen, Indizes oder BLOB-Daten. Dazu erstellt Falcon genau wie ORACLE oder SQL-Server einen System-Tablespace zur eigenen Verwendung (falcon_masters.fts) sowie einen temporären Tablespace für das Workarea-Handling (falcon_temporary_fts). Diese Tablespaces werden in dem Standard-MySQL-Daten-Verzeichnis erstellt. Dabei verhalten sich die Tablespaces eher wie bei ORACLE (mit Schemata), da ein Tablespace für mehrere Datenbanken in der MySQL-Instanz verwendet werden kann. Einen Tablespace erstellt man z.B. auf der Windows-Plattform über: MySQL> create tablespace gimdata → add datafile 'c:/dev/falcon/gimdata.fts' → engine=falcon; Um einen Tablespace zu erstellen, wird ein eindeutiger Name für den Tablespace gebraucht: ein eindeutiger Datafile Name und, falls notwendig, der dazugehörige Pfad. Mit der ENGINE= FALCON Klausel ist es meist getan, da die NDB/Cluster-Speicher-Engine (NDB= Network Database) auch Tablespaces verwendet. Tablespaces sind von dynamischer Natur: man kann sie fast beliebig erstellen und löschen ohne dass es eine Auswirkung auf die Ausführung der MySQL-Instanz hat. Das Erstellen von Tabellen und Indizes erfolgt in Falcon leicht über die CREATE-DDL-Syntax. Damit kann man Tablespace Objekte zuweisen. Die Kontrolle darüber, welche Objekte den Tablespaces zugewiesen sind erfolgt über die Abfrage von INFORMATION_SCHEMA Objekt FALCON_TABLES. MySQL Probleme die die Falcon Storage Engine lösen soll: Folgende MySQL-Probleme sollen durch die Falcon Storage Engine gelöst werden: Unzureichende oder schlechte Unterstützung für: korrekte Fremdschlüssel Stored Procedures Transaktionen Replikation als Master/Slave Materialized Views Auch die referentielle Integrität soll bei MySQL durch Falcon verbessert werden. Weitere Problempunkte sind die Unicode-Unterstützung und die Handhabung von XML-Dokumenten. Features von der Falcon-Storage-Engine Online Add and Drop Index: Falcon erstellt Indizes im laufenden Betrieb, ohne Unterbrechung des Lese-/Schreib-Zugriffs auf der Tabelle. SuperNodes: SuperNodes sind ein Array von 16 Vektoren in jeder Indexseite zu Schlüsseln, die vollständig mit Noprefix Komprimierung erweitert sind. Weitere neue Features sind: Thread-Signaling, Record Cache Backlogging und einige Performance-Steigerungen. Datafiles Bei Erzeugung eines Tablespaces kann keine Kontrolle über die Ausgangsgrösse und maximale Grösse von Dateien ausgeübt werden. |
|||||
| Siehe auch: MySQL InnoDB MyISAM datenbank Multiversion-Concurrency-Control | |||||
| My-SQL-6 | |||||
|
MySQL 6.0 soll einige Probleme von MySQL lösen. Neben der Falcon Storage Engine werden folgende Änderungen eingebaut: Unterstützung der Unicode Zeichensätze UTF-16, UTF-32 und UTF-8 in der 4 Byte Version. Der Optimizer für Subqueries und Joins wird verbessert. Der Index-Zugriff durch Scripts auf Tabellenreihen für Teile nicht zusammenhängender Bereiche in der MyISAM- und InnoDB-Storage Engine ist ein neues Feature. Eine neue Tabelle 'PARAMETERS' wird angelegt: diese Tabelle verfügt über Informationen zu Parametern von integrierten Funktionen und Prozeduren. Der Tabelle 'ROUTINES' werden neue Columns hinzugefügt: 'Data_Type', 'Character_Maximum_Length', 'Character Octet_Length', 'Numeric_Precision', 'Numeric_Scale', 'Character_Set_Name' und 'Collation_Name'. Diese Columns verfügen über Informationen von Datentypen, die Rückgabewerte von gespeicherten Funktionen annehmen können. Weitere Neuerungen sind: Reset Slave-Kommando, Lock-Table-Syntax und ein verbesserter Umgang mit XML-Objekten. |
|||||
| Siehe auch: MySQL Falcon-Storage-Engine InnoDB MySQL-Cluster | |||||