Ya vi una publicación similar en Stack Overflow, pero no estaba del todo satisfecho.MySQL - usando String como clave principal
Digamos que ofrezco un servicio web. http://foo.com/SERVICEID
SERVICEID es una ID de cadena única utilizada para hacer referencia al servicio (base 64, mayúsculas/minúsculas + números), similar a cómo los servicios de acortador de URL generan ID para una URL.
Entiendo que hay problemas de rendimiento inherentes al comparar cadenas versus enteros.
Pero tengo curiosidad de cómo optimizar al máximo una clave principal de tipo String.
Estoy usando MySQL, (actualmente usando el motor MyISAM, aunque reconozco que no entiendo todas las diferencias de motor).
Gracias.
actualización para mi propósito la cadena era en realidad sólo un número entero base62 codificado, por lo que la clave principal era un entero, y ya que no es probable que supere nunca el tamaño de bigint que simplemente no tiene mucho sentido use cualquier otra cosa (para mi caso de uso particular)
Gracias, estaba bastante seguro de que no sería una gran diferencia, pero quería saber de la comunidad que ha "estado allí hecho eso" –
Nota: para columnas que son solo un código ASCII limitado en lugar de palabras reales (por ejemplo, hash, base64, códigos de país estándar, etc.), puede ser una buena idea usar la intercalación 'ascii_bin'. Si utiliza una intercalación basada en utf-8, reservará 3 o 4 bytes por carácter para las columnas CHAR en lugar de solo 1. – thomasrutter
No utilice códigos de país en sus claves principales. – displayname