La respuesta corta es, sí, por supuesto que afectará el rendimiento, ya que la longitud de la clave afectará directamente el tiempo que lleva recorrer el árbol.
También afecta al almacenamiento, ya que las claves más largas ocupan más espacio, el espacio lleva tiempo.
Sin embargo, el matiz que se está perdiendo es que aunque Couch CAN (y lo hace) asignó nuevos ID para usted, no es necesario. Será más que feliz de aceptar sus propias identificaciones en lugar de generarlas. Por lo tanto, si la duración de la clave te molesta, puedes utilizar claves más cortas.
Sin embargo, dada la naturaleza "json" del sofá, es una base de datos basada en "texto". No hay una gran cantidad de datos binarios almacenados en una instancia de Couch normal (sin embargo, los archivos adjuntos no son compatibles, pero incluso aquellos que creo que están almacenados en BASE64, puedo estar equivocado).
Entonces, si bien un 64-bit sería el más eficiente, el simple hecho es que Couch está diseñado para funcionar con cualquier tecla, y "cualquier tecla" se expresa más fácilmente en el texto.
Finalmente, a decir verdad, el costo de la comparación de claves es empequeñecido por los tiempos de captación de E/S de disco, y la recopilación de datos JSON (especialmente en escrituras). Cualquier ganancia real lograda mediante la conversión a un sistema de este tipo probablemente no tenga un impacto del "mundo real" en el rendimiento general.
Si realmente desea acelerar el sistema de llaves Couch, codifique la rutina de teclas para bloquear la clave en longitudes de 64 bits, y compárelas (como usted dijo). 8 bytes de texto son lo mismo que 64 bits "long int". Eso te daría, en teoría, un aumento de rendimiento de 8 veces en comparación de claves. Si erlang puede crear dicho código, no puedo decirlo.
Gracias por las respuestas. Me encanta la elegancia que permiten los identificadores de cadena más largos. Y ahora mi preocupación por el rendimiento se ve disminuida. –