Consultas por lotes de filas con Go y pgx
Inicia primero la base de datos desechable y después ejecuta:
go -C examples/go-pgx run ./demo
Usa 127.0.0.1:55432, la base de datos pglc_demo y las credenciales demo / demo-only. Define PGLC_DEMO_PORT cuando quickstart use otro puerto.
La demo envía las claves como parámetro de consulta:
SELECT local_cache.mget('public.items'::regclass, $1::bigint[]);
mget devuelve text[]; cada elemento no nulo es una fila JSON. El ejemplo solicita 42, 7, 42, NULL, 999999 e imprime las filas en el orden de entrada. El 42 duplicado permanece en ambas posiciones; la entrada nula y 999999, que falta, producen elementos nulos.
Compara filas, no solo viajes de ida y vuelta
Una consulta normal WHERE id = ANY($1::bigint[]) no conserva las posiciones solicitadas. Restaura el orden de entrada, los duplicados y las filas ausentes antes de compararla con mget; la guía de consultas por lotes muestra los enfoques desde el cliente y desde SQL.
El benchmark usa conexiones persistentes y sentencias preparadas. Preparar SQL no almacena en caché sus filas de resultado: consulta la guía de caché de PostgreSQL. El benchmark común prueba Go y Node.js con las mismas claves, tamaños de lote, cantidades de conexiones y duración mediante SQL y RESP. RESP no comparte la transacción SQL de quien llama.
Consulta el quickstart para la configuración y las comprobaciones de transacciones antes de adaptar el recorrido de lectura.
Actualizado .