PostgreSQL 17은 개발자, 데이터 과학자 및 데이터베이스 관리자를 위한 다양하고 흥미로운 새 기능과 향상된 기능을 제공합니다. 이 문서에서는 PostgreSQL 17의 가장 중요한 추가 사항 및 개선 사항 중 일부를 살펴보고 Python에서 이러한 기능을 사용하는 방법을 보여줍니다.
Python 예제: PostgreSQL 17을 사용한 증분 정렬
이 기능을 사용하려면 먼저 Python의 psycopg2 라이브러리를 사용하여 PostgreSQL 연결을 설정해 보겠습니다.
`psycopg2 가져오기
콘 = psycopg2.connect(
호스트="localhost",
데이터베이스="test_db",
user="postgres",
비밀번호="귀하의_비밀번호"
)
cur = conn.cursor()
cur.execute("""
존재하지 않는 경우 테이블 생성 Large_dataset(
ID 직렬 기본 키,
카테고리 VARCHAR(50),
INT 값
);
""")
cur.execute("""
INSERT INTO Large_dataset(범주, 값)
선택
'카테고리' || (i % 10),
무작위() * 1000
FROM generate_series(1, 1000000) i;
""")
conn.commit()
cur.execute("""
설명 분석
SELECT * FROM Large_dataset
카테고리별, 값별 정렬;
""")
query_plan = cur.fetchall()
query_plan의 줄:
인쇄(라인)
cur.close()
conn.close()
`
이 예에서 PostgreSQL 17의 향상된 증분 정렬은 ORDER BY 절을 효율적으로 처리하여 데이터를 증분 정렬하고 전체 쿼리 실행 시간을 줄입니다.
Python 예: JSONPath 개선 사항 사용
`## 데이터베이스에 다시 연결
conn = psycopg2.connect(
호스트="localhost",
데이터베이스="test_db",
user="postgres",
비밀번호="귀하의_비밀번호"
)
cur = conn.cursor()
cur.execute("""
존재하지 않는 경우 테이블 생성 json_data(
ID 직렬 기본 키,
데이터 JSONB
);
""")
cur.execute("""
json_data(데이터)에 삽입
가치
('{"이름": "앨리스", "나이": 30, "기술": ["Python", "SQL"]}'),
('{"이름": "Bob", "나이": 25, "기술": ["Java", "C++"]}');
""")
conn.commit()
cur.execute("""
데이터 선택 ->> 'name' AS 이름, 데이터 ->> '나이' AS나이
json_data에서
@ 데이터는 어디에 있나요? '$.스킬 ? (@ == "파이썬")';
""")
결과 = cur.fetchall()
결과 행의 경우:
인쇄(행)
cur.close()
conn.close()
`
이 코드는 PostgreSQL 17의 향상된 JSONPath 기능이 복잡한 조건을 기반으로 JSON 필드에서 데이터 추출을 단순화하는 방법을 보여줍니다.
Python 예제: 병렬 인덱스 생성
`## 데이터베이스에 다시 연결
conn = psycopg2.connect(
호스트="localhost",
데이터베이스="test_db",
user="postgres",
비밀번호="귀하의_비밀번호"
)
cur = conn.cursor()
cur.execute("""
존재하지 않는 경우 테이블 생성 Large_table(
ID 직렬 기본 키,
데이터 VARCHAR(255)
);
""")
cur.execute("""
INSERT INTO Large_table(데이터)
선택
md5(random()::text)
FROM generate_series(1, 5000000);
""")
conn.commit()
cur.execute("""
대형_테이블(데이터)에 대해 동시에 인덱스 생성 Large_table_data_idx;
""")
conn.commit()
cur.close()
conn.close()
`
이 예에서는 여러 CPU 코어를 사용하여 인덱스를 동시에 생성하는 PostgreSQL 17의 향상된 기능을 보여줍니다. 이는 대규모 테이블 작업 시 매우 유용합니다.
Python 예제: SQL/JSON 표준 함수
`## 데이터베이스에 다시 연결
conn = psycopg2.connect(
호스트="localhost",
데이터베이스="test_db",
user="postgres",
비밀번호="귀하의_비밀번호"
)
cur = conn.cursor()
cur.execute("""
존재하지 않는 경우 테이블 생성 Employee_data(
ID 직렬 기본 키,
정보 JSONB
);
""")
cur.execute("""
직원_데이터에 삽입(정보)
가치
('{"이름": "John", "department": "매출", "급여": 5000}'),
('{"이름": "Jane", "부서": "IT", "급여": 7000}');
""")
conn.commit()
cur.execute("""
SELECT jsonb_path_query_first(info, '$.department') AS 부서
직원_데이터에서
WHERE jsonb_path_exists(info, '$.salary ? (@ > 6000)');
""")
결과 = cur.fetchall()
결과 행의 경우:
인쇄(행)
cur.close()
conn.close()
`
이 예에서는 SQL/JSON 표준 함수를 사용하여 JSON 데이터를 쿼리하는 방법을 보여주며 PostgreSQL 17이 새로운 SQL 표준을 준수함을 보여줍니다.
PostgreSQL 17 및 새로운 기능에 대한 자세한 내용은 공식 문서를 참조하세요.
위 내용은 Python을 사용하여 PostgreSQL의 새로운 기능 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!