Isso é mais rápido que
concat + substring rotina. select substring(MD5(RAND()),1,20);
Como testei inserir 1 milhão de dados aleatórios,
md5 rotina consome apenas 1/4 (ainda menos) tempo de concat + substring rotina; O problema é que uma string md5 contém apenas 32 caracteres, portanto, se você precisar de uma mais longa, terá que gerar manualmente mais strings md5 e
substring por você mesmo.