Aktivieren der große index in MariaDB 10?

In Debian Jessie ich installierte MariaDB-server 10.0.30 und ich versuchen, die Erhöhung der maximalen Schlüssellänge. AFAIU kommt es auf die config-parameter innodb_large_prefix aktiviert wird. Nach der docs, es erfordert auch barracuda - Datei-format und innodb_file_per_table. Nachdem diese in der config und Neustart-server sehe ich im-client, dass diese Parameter richtig eingestellt sind:

> SHOW GLOBAL VARIABLES LIKE 'innodb_large%';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| innodb_large_prefix | ON    |
+---------------------+-------+
1 row in set (0.00 sec)

> SHOW GLOBAL VARIABLES LIKE 'innodb_file%';
+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_file_format       | Barracuda |
| innodb_file_format_check | OFF       |
| innodb_file_format_max   | Antelope  |
| innodb_file_per_table    | ON        |
+--------------------------+-----------+
4 rows in set (0.00 sec)

> SHOW GLOBAL VARIABLES LIKE 'innodb_page%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)

Ich bin nicht sicher, warum innodb_file_format_max eingestellt ist Antelope, aber während innodb_file_format_check AUSGESCHALTET ist, sollte es egal sein. Eigentlich, auch wenn ich hatte es auch eingestellt Barracuda es nicht gemacht Unterschied.

Wenn ich versuche, nun erstellen Sie die Tabelle mit großen index wie:

CREATE TABLE `some_table` (
  `some_tableID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `column` varchar(750) COLLATE utf8mb4_estonian_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`some_tableID`),
  KEY `column` (`column`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_estonian_ci;

Bekomme ich Fehler:

ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

Auf Ubuntu 16.04 mit dem mysql-server 5.7.17 sind alle mit gleichen Einstellungen (Standard) und es gibt kein problem mit großen index (für utf8mb4 es ist 750*4 = 3000).

Was ist Los mit meinem MariaDB-setup?

  • Und wenn Sie hinzufügen ROW_FORMAT=DYNAMIC ?
  • nicht mehr, da gab bis auf MariaDB um und ging zurück zu MySQL
  • FWIW es nicht mit MariaDB, MySQL 5.6 hat das gleiche Problem. Es ist auch kein Problem, in MariaDB 10.2.
  • Siehe stackoverflow.com/a/52778785/2137210 für die Lösung
InformationsquelleAutor w.k | 2017-04-12
Schreibe einen Kommentar