Así que tengo una pregunta.¿Índice o único? Lo que es mejor MySql
Supongamos que tiene una solicitud de tabla, que representa un gráfico. Hay 3 columnas en la tabla de solicitud, A, B, hora. A -> B En el momento. Entonces, lo que cada fila representa es una conexión dirigida de A (el solicitante) a B (el solicitante) en el Tiempo T (el tiempo es solo para organizar datos, no para nada más).
Entonces, ¿qué es más rápido si las solicitudes son 1,000,000 de filas?
Índice (A, B) Índice (A) e índice (B) Único (A, B)?
Gracias chicos! Y A, B son VARCHAR (32) (MD5)
Lo siento, olvidé una consulta típica.
Necesito poder ver si el usuario A (que inició sesión) tiene alguna solicitud.
También necesitaré buscar para verificar que un usuario haya aceptado una solicitud correcta, A Acepta B.
Así serán las declaraciones.
¿Alguna nueva solicitud?
SELECT B, time
FROM requests
WHERE A='$id';
Does A have a request from B?
SELECT time
FROM requests
WHERE A='$A' and B='$B';
"Más rápido" depende de cómo planeas buscar contra los datos. ¿Cómo sería una consulta típica? –
Oko, acaba de actualizar los elementos. Lo siento, olvidé poner las consultas. Probablemente estaré haciendo MUCHAS solicitudes más de NUEVAS PETICIONES que para una solicitud de B – Michael
. Recomendaría poner un índice normal en A y B, le dará un buen rendimiento y la flexibilidad que necesita. No use una restricción única, los MD5 pueden colisionar, pero las probabilidades son mínimas, reducirá demasiado las cosas. El punto final MD5 ya no es seguro, 'caminar no se ejecute en un hash más seguro como SHA512'. – Johan