[debian-mysql] Bug#848603: Enable innodb_large_prefix
Ian Gilfillan
ian at mariadb.org
Mon Dec 19 20:17:08 UTC 2016
On 18/12/2016 23:43, Christian Hofstaedtler wrote:
> mariadb-server, the new default-mysql-server, breaks existing
> well-functioning applications that need to index columns defined as
> VARCHAR(255). This worked fine with mysql-server-5.6.
>
> This is caused by two questionable choices:
>
> * default character set is utf8mb4 (causing index prefix lengths
> quadruple).
> * innodb_large_prefix is OFF.
>
> I'd suggest you enable innodb_large_prefix or revert to what
> mysql-server-5.6 did, i.e. set the character set to utf8 (which uses
> "just" 3 bytes per character).
>
> Thanks,
The default character set has been utf8mb4 in Debian MariaDB for a while
now, so changing it back is probably not the best idea. MySQL and
probably MariaDB will in future use this default, so going back just
delays things. But with the current default, besides your issue, there
could also be issues when moving from Debian to another distro (or
installing from MariaDB's repos), even on the same version, so whatever
happens won't be ideal for everyone.
Setting innodb_large_prefix to ON is not possible without also changing
the InnoDB file format and setting innodb_file_format to barracuda. See
https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
Can you clarify what you mean by "breaks"? The application critically
needs to make use of indexes longer than 191 characters? Or is it
running slowly? See https://jira.mariadb.org/browse/MDEV-8872 for a
performance issue.
Realistically, the best fix may be for you to specify the character set
in the configs in advance.
More information about the pkg-mysql-maint
mailing list