


Explorer de nouvelles fonctionnalités dans PostgreSQL avec Python
Aug 25, 2024 am 06:00 AMPostgreSQL 17 apporte une multitude de nouvelles fonctionnalités et améliorations intéressantes qui s'adressent aux développeurs, aux data scientists et aux administrateurs de bases de données. Cet article explorera certains des ajouts et améliorations les plus importants de PostgreSQL 17 et montrera comment utiliser ces fonctionnalités avec Python.
- Performances des requêtes améliorées avec le tri incrémentiel L'une des fonctionnalités les plus remarquables de PostgreSQL 17 est l'amélioration de l'algorithme de tri incrémentiel, qui prend désormais en charge un plus large éventail de cas d'utilisation. Le tri incrémentiel peut réduire considérablement le temps nécessaire à l'exécution de requêtes impliquant de grands ensembles de données, en particulier lorsqu'il s'agit de données triées.
Exemple Python : tri incrémentiel avec PostgreSQL 17
Pour utiliser cette fonctionnalité, commençons par configurer une connexion PostgreSQL à l'aide de la bibliothèque psycopg2 de Python :
`importer psycopg2
Connectez-vous à la base de données PostgreSQL
conn = psycopg2.connect(
host="localhost",
base de données="test_db",
utilisateur="postgres",
password="votre_mot de passe"
)
Créer un objet curseur
cur = conn.cursor()
Créer un tableau et insérer des données
cur.execute("""
CRÉER UNE TABLE SI NON EXISTE large_dataset (
id CLÉ PRIMAIRE SÉRIE,
catégorie VARCHAR(50),
valeur INT
);
""")
Insérer des exemples de données
cur.execute("""
INSERT INTO large_dataset (catégorie, valeur)
SÉLECTIONNER
'Catégorie' || (je %10),
aléatoire() * 1000
DE generate_series(1, 1000000) i;
""")
conn.commit()
Utilisation du tri incrémentiel
cur.execute("""
EXPLIQUER ANALYSER
SELECT * FROM large_dataset
COMMANDER PAR catégorie, valeur ;
""")
Récupérer et imprimer le plan de requête
query_plan = cur.fetchall()
pour la ligne dans query_plan :
imprimer(ligne)
Fermez le curseur et la connexion
cur.close()
conn.close()
`
Dans cet exemple, le tri incrémentiel amélioré de PostgreSQL 17 gère efficacement la clause ORDER BY, triant les données de manière incrémentielle et réduisant le temps global d'exécution des requêtes.
- Améliorations du chemin JSON PostgreSQL 17 introduit des améliorations à JSONPath, facilitant l'interrogation et la manipulation des données JSON. Ceci est particulièrement utile pour les applications qui s'appuient fortement sur JSON pour l'échange de données.
Exemple Python : utilisation des améliorations JSONPath
`## Reconnectez-vous à la base de données
conn = psycopg2.connect(
host="localhost",
base de données="test_db",
utilisateur="postgres",
password="votre_mot de passe"
)
cur = conn.cursor()
Créer une table avec des données JSON
cur.execute("""
CRÉER UNE TABLE SI N'EXISTE PAS json_data (
id CLÉ PRIMAIRE SÉRIE,
données JSONB
);
""")
Insérer des exemples de données JSON
cur.execute("""
INSÉRER DANS json_data (data)
VALEURS
('{"nom": "Alice", "âge": 30, "compétences": ["Python", "SQL"]}'),
('{"name": "Bob", "age": 25, "skills": ["Java", "C++"]}');
""")
conn.commit()
Interroger les données JSON à l'aide de JSONPath
cur.execute("""
SÉLECTIONNER les données ->> 'nom' Nom AS, données ->> 'âge' AS âge
DE json_data
OÙ les données @ ? '$.compétences ? (@ == "Python")';
""")
Récupérer et imprimer les résultats
résultats = cur.fetchall()
pour la ligne dans les résultats :
imprimer (ligne)
Fermez le curseur et la connexion
cur.close()
conn.close()
`
Ce code montre comment les fonctionnalités JSONPath améliorées de PostgreSQL 17 simplifient l'extraction de données à partir de champs JSON en fonction de conditions complexes.
- Parallélisme amélioré pour la création d'index La création d'index dans PostgreSQL 17 est désormais plus efficace grâce à un parallélisme amélioré, permettant une indexation plus rapide sur de grands ensembles de données.
Exemple Python : création d'index parallèle
`## Reconnectez-vous à la base de données
conn = psycopg2.connect(
host="localhost",
base de données="test_db",
utilisateur="postgres",
password="votre_mot de passe"
)
cur = conn.cursor()
Créer une grande table
cur.execute("""
CRÉER UNE TABLE SI NON EXISTE large_table (
id CLÉ PRIMAIRE SÉRIE,
données VARCHAR(255)
);
""")
Insérer un grand nombre de lignes
cur.execute("""
INSERT INTO large_table (données)
SÉLECTIONNER
md5(aléatoire()::text)
DE generate_series(1, 5000000);
""")
conn.commit()
Créer un index avec parallélisme
cur.execute("""
CRÉER UN INDEX CONCURRENTEMENT large_table_data_idx ON large_table (data);
""")
conn.commit()
Fermez le curseur et la connexion
cur.close()
conn.close()
`
Cet exemple présente la capacité améliorée de PostgreSQL 17 à créer des index simultanément à l'aide de plusieurs cœurs de processeur, ce qui est très bénéfique lorsque vous travaillez avec des tables volumineuses.
- Fonctions conformes aux normes SQL/JSON PostgreSQL 17 a ajouté la prise en charge de davantage de fonctions conformes à la norme SQL/JSON, améliorant ainsi sa capacité à gérer les données JSON avec une syntaxe davantage conforme à la norme SQL.
Exemple Python : fonctions standard SQL/JSON
`## Reconnectez-vous à la base de données
conn = psycopg2.connect(
host="localhost",
base de données="test_db",
utilisateur="postgres",
password="votre_mot de passe"
)
cur = conn.cursor()
Créer une table avec des données JSON
cur.execute("""
CRÉER UNE TABLE SI NON EXISTE Employee_data (
id CLÉ PRIMAIRE SÉRIE,
infos JSONB
);
""")
Insérer des exemples de données JSON
cur.execute("""
INSÉRER DANS Employee_data (info)
VALEURS
('{"name": "John", "department": "Ventes", "salary": 5000}'),
('{"name": "Jane", "department": "IT", "salary": 7000}');
""")
conn.commit()
Requête à l'aide des fonctions SQL/JSON
cur.execute("""
SELECT jsonb_path_query_first(info, '$.department') AS département
DE Employee_data
OÙ jsonb_path_exists(info, '$.salary ? (@ > 6000)');
""")
Récupérer et imprimer les résultats
résultats = cur.fetchall()
pour la ligne dans les résultats :
imprimer (ligne)
Fermez le curseur et la connexion
cur.close()
conn.close()
`
Dans cet exemple, nous montrons comment utiliser les fonctions standard SQL/JSON pour interroger des données JSON, démontrant ainsi la conformité de PostgreSQL 17 avec les nouvelles normes SQL.
Pour plus d'informations sur PostgreSQL 17 et ses nouvelles fonctionnalités, reportez-vous à la documentation officielle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser la belle soupe pour analyser HTML?

Comment télécharger des fichiers dans Python

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

Comment implémenter votre propre structure de données dans Python
