High-Performance Python Async
Edizione 2026. Un'analisi approfondita su come accelerare asyncio in Python con uvloop e interfacciarsi direttamente con PostgreSQL utilizzando il protocollo binario di asyncpg.
Episodi
Il bisogno di velocità: l'architettura di uvloop
3m 52sScopri le differenze architetturali tra l'asyncio standard di Python e uvloop. Esploriamo come uvloop sfrutti Cython e libuv per ottenere prestazioni simili a quelle di Go.
Integrare uvloop
3m 59sImpara a integrare uvloop nella tua applicazione Python. Questo episodio tratta l'approccio EventLoopPolicy per sostituire senza problemi l'event loop predefinito.
Introduzione ad asyncpg: il protocollo binario
3m 37sEsplora il design fondamentale di asyncpg. Discutiamo del perché bypassare la DB-API standard a favore del protocollo binario di PostgreSQL porti a enormi guadagni prestazionali.
Connessione ed esecuzione di base
3m 30sInizia a usare asyncpg connettendoti a un database ed eseguendo query di base. Comprendi la sintassi nativa degli argomenti di Postgres.
Conversione nativa dei tipi
4m 05sScopri come asyncpg mappa automaticamente i tipi di dati di PostgreSQL in oggetti Python nativi, eliminando la necessità di complessi parsing tramite ORM.
Codec di tipo personalizzati
3m 51sImpara a definire conversioni di dati personalizzate in asyncpg. Questo episodio spiega come utilizzare set_type_codec per decodificare automaticamente JSONB in dizionari Python.
Codec avanzati con PostGIS
3m 39sApprofondisci i codec di tipo personalizzati mappando i tipi di geometria PostGIS di PostgreSQL in oggetti Shapely di Python utilizzando il formato binario.
Gestione delle transazioni
3m 38sPadroneggia le transazioni del database in asyncpg. Trattiamo il comportamento di auto-commit e come eseguire in sicurezza query multiple utilizzando i context manager asincroni.
Connection Pooling
3m 19sScala la tua applicazione con il connection pooling integrato di asyncpg. Impara a gestire in modo efficiente le connessioni al database in servizi web ad alto traffico.
Caching dei Prepared Statement
3m 56sComprendi come asyncpg ottimizza il parsing delle query con i prepared statement automatici e perché pooler esterni come PgBouncer possono causare conflitti.
Array Postgres e clausole IN
4m 08sRisolvi l'errore di sintassi più comune quando si migra ad asyncpg. Impara a filtrare correttamente le query rispetto a un elenco di valori utilizzando ANY().
Oggetti Record vs Named Tuple
3m 53sEsplora il design unico degli oggetti Record di asyncpg. Comprendi perché la dot-notation è omessa per impostazione predefinita e come abilitarla con classi personalizzate.
Streaming dei risultati con i cursori
4m 20sPrevieni l'esaurimento della memoria quando interroghi dataset enormi. Impara a utilizzare i cursori di asyncpg per fare lo streaming dei risultati a blocchi.
Ingestion velocissima con COPY
3m 40sMetti il turbo alle tue pipeline di data ingestion. Esploriamo il protocollo COPY di PostgreSQL per caricare dati in blocco in modo esponenzialmente più veloce rispetto alle istruzioni INSERT.
Listen e Notify asincroni
3m 25sSblocca architetture event-driven in tempo reale direttamente all'interno di PostgreSQL. Impara a utilizzare add_listener di asyncpg per la messaggistica pub/sub istantanea.
Telemetria e logging delle query
3m 28sOttieni una profonda osservabilità sulle prestazioni del tuo database. Scopri come utilizzare i log listener di asyncpg per tracciare le query lente e monitorare la telemetria di esecuzione.
Mettere in sicurezza le connessioni con SSL
4m 18sAssicurati che le connessioni al tuo database siano sicure. Trattiamo la configurazione del contesto SSL e come imporre il TLS diretto quando ci si connette ai database cloud.