C'est plus rapide que concat + substring routine.
select substring(MD5(RAND()),1,20);
Comme j'ai testé l'insertion de 1M de données aléatoires, md5 la routine ne consomme que 1/4 (encore moins) le temps de concat + substring routine ;
Le problème est qu'une chaîne md5 ne contient que 32 caractères, donc si vous en avez besoin d'une plus longue, vous devrez générer manuellement plus de chaînes md5 et substring faites-le vous-même.