Eu li um artigo que o agrupamento cp1256 leva 1 byte para caracteres árabes, mas quando criei um índice na coluna que era cp1256 com o tipo de varchar (900), apenas 767 caracteres foram coletados para fins de índice:
CREATE TABLE
col
(
id int(11) NOT NULL AUTO_INCREMENT,
arabic varchar(900) CHARACTER SET cp1256 NOT NULL,
PRIMARY KEY (id),
KEY (arabic(767)
) ENGINE=InnoDB;
Árabe varchar(900) truncado para (767) para o meu índice.
Por que esse é o caso?
Esse é um limite do mecanismo InnoDB. Não pode indexar mais de 767 bytes (para uma única coluna)
Veja o manual:
http://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html