ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して PostgreSQL の新機能を探索する
PostgreSQL 17 は、開発者、データ サイエンティスト、データベース管理者のニーズに応える多数のエキサイティングな新機能と拡張機能をもたらします。この記事では、PostgreSQL 17 の最も重要な追加機能と改善点をいくつか取り上げ、これらの機能を Python で使用する方法を示します。
Python の例: PostgreSQL 17 を使用した増分ソート
この機能を使用するには、まず Python の psycopg2 ライブラリを使用して PostgreSQL 接続をセットアップしましょう:
`psycopg2 をインポート
conn = psycopg2.connect(
ホスト = "ローカルホスト",
データベース="test_db",
ユーザー = "postgres",
パスワード="あなたのパスワード"
)
cur = conn.cursor()
cur.execute("""
存在しない場合はテーブルを作成しますlarge_dataset (
id シリアル主キー、
カテゴリ VARCHAR(50)、
値 INT
);
""")
cur.execute("""
INSERT INTOlarge_dataset (カテゴリ、値)
選択
'カテゴリ' || (i % 10)、
ランダム() * 1000
FROMgenerate_series(1, 1000000) i;
""")
conn.commit()
cur.execute("""
分析の説明
SELECT * FROMlarge_dataset
カテゴリ、値で注文;
""")
query_plan = cur.fetchall()
query_plan の行:
print(行)
cur.close()
conn.close()
`
この例では、PostgreSQL 17 の改良された増分ソートが ORDER BY 句を効率的に処理し、データを増分的にソートし、全体的なクエリ実行時間を短縮します。
Python の例: JSONPath 拡張機能の使用
`## データベースに再接続します
conn = psycopg2.connect(
ホスト = "ローカルホスト",
データベース="test_db",
ユーザー = "postgres",
パスワード="あなたのパスワード"
)
cur = conn.cursor()
cur.execute("""
存在しない場合はテーブルを作成 json_data (
id シリアル主キー、
データ JSONB
);
""")
cur.execute("""
INSERT INTO json_data (データ)
値
('{"名前": "アリス", "年齢": 30, "スキル": ["Python", "SQL"]}'),
('{"名前": "ボブ", "年齢": 25, "スキル": ["Java", "C++"]}');
""")
conn.commit()
cur.execute("""
データの選択 ->> 'name' AS 名、データ ->> '年齢' AS age
FROM json_data
WHERE データ @? 「$.スキル?」 (@ == "Python")';
""")
結果 = cur.fetchall()
結果の行:
print(行)
cur.close()
conn.close()
`
このコードは、PostgreSQL 17 の強化された JSONPath 機能により、複雑な条件に基づいて JSON フィールドからのデータ抽出を簡素化する方法を示しています。
Python の例: インデックスの並列作成
`## データベースに再接続します
conn = psycopg2.connect(
ホスト = "ローカルホスト",
データベース="test_db",
ユーザー = "postgres",
パスワード="あなたのパスワード"
)
cur = conn.cursor()
cur.execute("""
存在しない場合はテーブルを作成しますlarge_table (
id シリアル主キー、
データ VARCHAR(255)
);
""")
cur.execute("""
INSERT INTOlarge_table (データ)
選択
md5(ランダム()::テキスト)
FROMgenerate_series(1, 5000000);
""")
conn.commit()
cur.execute("""
CREATE INDEX CONCURRENTLYlarge_table_data_idx ONlarge_table (データ);
""")
conn.commit()
cur.close()
conn.close()
`
この例は、複数の CPU コアを使用して同時にインデックスを作成する PostgreSQL 17 の機能の向上を示しています。これは、大規模なテーブルを操作する場合に非常に有益です。
Python の例: SQL/JSON 標準関数
`## データベースに再接続します
conn = psycopg2.connect(
ホスト = "ローカルホスト",
データベース="test_db",
ユーザー = "postgres",
パスワード="あなたのパスワード"
)
cur = conn.cursor()
cur.execute("""
存在しない場合はテーブルを作成従業員データ (
id シリアル主キー、
情報 JSONB
);
""")
cur.execute("""
INSERT INTO 従業員データ (情報)
値
('{"名前": "ジョン", "部門": "売上高", "給与": 5000}'),
('{"名前": "ジェーン", "部署": "IT", "給与": 7000}');
""")
conn.commit()
cur.execute("""
SELECT jsonb_path_query_first(info, '$.Department') AS 部門
FROM 従業員データ
WHERE jsonb_path_exists(info, '$.salary ? (@ > 6000)');
""")
結果 = cur.fetchall()
結果の行:
print(行)
cur.close()
conn.close()
`
この例では、SQL/JSON 標準関数を使用して JSON データをクエリする方法を示し、PostgreSQL 17 が新しい SQL 標準に準拠していることを示します。
PostgreSQL 17 とその新機能の詳細については、公式ドキュメントを参照してください。
以上がPython を使用して PostgreSQL の新機能を探索するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。