Saltar al contenido

¿Cuál es la mejor manera de seleccionar varias filas por ID en sql?

Nuestros investigadores estrellas agotaron sus depósitos de café, investigando a tiempo completo por la respuesta, hasta que Mateo encontró el arreglo en GitLab y ahora la comparte con nosotros.

Solución:

SELECT *
FROM `table`
where ID in (5263, 5625, 5628, 5621) 

es probablemente mejor, pero no más rápido.

SELECT *
FROM `table`
WHERE `ID` in (5623, 5625, 5628, 5621)

Mientras investigaba esto más a fondo, encontré una publicación de blog interesante que explica cómo usar un conjunto para obtener un rendimiento SQL más rápido de las cláusulas In, creando una lista de ID en una Expresión de tabla común (CTE) y luego uniéndome a eso.

Por lo tanto, podría codificar el equivalente PHP de lo siguiente para obtener el máximo rendimiento.

DECLARE  @idList varchar(256) 
SET @idList = '5623, 5625, 5628, 5621'

;with ids (id) as
(
    SELECT value FROM UTILfn_Split(@idList,',')
)

SELECT     t.* 
FROM     table as t
INNER JOIN    ids
ON        t.ID = ids.id

Además de lo que la gente declaró (dónde está la identificación):

1) Si hay muchos ID, es mejor colocarlos en una tabla temporal y ejecutar una combinación con esa tabla temporal.

2) Asegúrese de que su tabla tenga un índice en id

3) Si la puntualidad real de los datos no es crítica, coloque los resultados de la consulta en un caché en el lado de la aplicación

Te mostramos comentarios y calificaciones

Si conservas algún reparo o disposición de prosperar nuestro división puedes ejecutar una apostilla y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *