2012-04-06 14 views
0

MariaDB 5.3 führte dynamische Spalten ein. Aus meiner Sicht sollte die nächste Version von mysql ähnliche Funktionen Mariadb haben?MySQL dynamische Spalten - column_create existiert nicht

Ich laufe derzeit mysql 5.5.9 und ich wollte mit dynamischen Spalten pro Zeile umgehen.

Also las ich auf der MySQL-Website auf, um diese Funktion zu erhalten:

innodb_file_format zu Barracuda gesetzt werden sollte.

Fertig.

-------------- 
show variables like "%innodb_file%" 
-------------- 

+--------------------------+-----------+ 
| Variable_name   | Value  | 
+--------------------------+-----------+ 
| innodb_file_format  | Barracuda | 
| innodb_file_format_check | ON  | 
| innodb_file_format_max | Barracuda | 
| innodb_file_per_table | ON  | 
+--------------------------+-----------+ 
4 rows in set (0.00 sec) 

ich meinen Tisch gehen Sie vor und erstellen dann

CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
`dyn` blob, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC 

ich dann versuchen, den Zweck zu testen

insert into test(`dyn`) VALUES (COLUMN_CREATE(1, "black", 3, "Linux")) 

ich die folgende Fehlermeldung einzufügen:

FUNCTION db.COLUMN_CREATE does not exist 

So meine Frage ist, bietet mysql nicht t Diese Funktionen? Soll ich zum Testen auf Mariadb wechseln?

Antwort

2

Basierend auf der documentation, scheint es, dass MySQL nicht bietet diese Funktion.

Das dynamische Zeilenformat bietet tatsächlich eine andere Methode für die Zeilen zu speichern, die nicht eine Möglichkeit, in einigen Fällen effizienter sein kann, ein variable Tabellenschema haben:

When innodb_file_format is set to Barracuda and a table is created with ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED, long column values are stored fully off-page, and the clustered index record contains only a 20-byte pointer to the overflow page.


Wenn Sie brauchen so ein flexibles Schema, überprüfen Sie die entity-attribute-value Muster.

+0

danke, ich sollte ihre Dokumentation ein wenig mehr durchsuchen. – slik