Out of two next snippets, the first one will throw a UNIQUE KEY constraint error and the second will pass.
SET NAMES utf8; CREATE table test(name varchar(60)) DEFAULT CHARSET=utf8; ALTER TABLE test ADD UNIQUE KEY name (name); INSERT INTO test VALUES("Лелик"); INSERT INTO test VALUES("Лёлик");
SET NAMES utf8 COLLATE utf8_bin;
CREATE table test(name varchar(60)) DEFAULT CHARSET=utf8;
ALTER TABLE test ADD UNIQUE KEY name (name);
INSERT INTO test VALUES("Лелик");
INSERT INTO test VALUES("Лёлик");
All this because some wise folks decided that the default collation for utf-8 be utf8_general_ci, the one that does not make a difference between upper- and lowercase, and also considers that CYRILLIC CAPITAL LETTER IE, CYRILLIC CAPITAL LETTER IO, CYRILLIC SMALL LETTER IE, CYRILLIC SMALL LETTER IO to be equal.