Subject Re: Index key size
Author Dmitry Yemanov
30.09.2014 19:19, Geoff Worboys wrote:
>
> CREATE INDEX MyIndex1 ON MyTable1 (Field1, Field2);
>
> where Field1 is VARCHAR(80)
> Field2 is VARCHAR(255)
>
> both use the database default CHARACTER SET WIN1252 with
> collation WIN1252_NOCASE as defined like this:
>
> CREATE COLLATION WIN1252_UNICODE
> FOR WIN1252^
>
> CREATE COLLATION WIN1252_NOCASE
> FOR WIN1252
> FROM WIN1252_UNICODE
> CASE INSENSITIVE^
>
> As it happens, I'm happy not to have this particular index,
> but I'd like to understand what's going on.

IIRC, unicode derived case/accent insensitive collations use six bytes
per character encoding. This gives us 2010 bytes which is pretty near
the 1/4 page size. Given that some overhead should be taken into
account, the key length may in fact overflow the limit.

I'm not absolutely sure this is your case, but it could be.


Dmitry