대규모 애플리케이션에서 데이터 보관 및 보관은 Oracle 데이터베이스의 성능을 유지하는 데 매우 중요합니다. 오래된 데이터를 전용 테이블에 보관함으로써 메인 테이블의 데이터 양을 효과적으로 줄여 쿼리 응답 속도를 향상시킬 수 있습니다. 이 기사에서는 PHP와 Oracle 데이터베이스를 결합하여 데이터 보관을 달성하는 실용적인 방법을 공유하고 완전한 코드 예제를 제공합니다.
Oracle에서는 CREATE TABLE 문을 사용하여 보관된 데이터를 저장할 보관 테이블을 생성할 수 있습니다. 예는 다음과 같습니다:
CREATE TABLE 아카이브_데이터( ID 번호, 이름 VARCHAR2(50), 생성_날짜 날짜 );
자동 보관을 달성하려면 데이터가 삭제되거나 업데이트될 때 기본 테이블에 대한 트리거를 만들어 보관 테이블과 동기화할 수 있습니다.
트리거 생성 또는 교체 archive_trigger main_table에서 생성된 날짜를 삭제 또는 업데이트한 후 각 행에 대해 시작하다 INSERT INTO archive_data(ID, 이름, 생성_날짜) VALUES (:old.id, :old.name, :old.created_date); 끝;
먼저 PHP를 사용하여 Oracle 데이터베이스에 연결해야 합니다.
<?php $conn = oci_connect('username', 'password', 'database'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } ?>
PHP를 통해 SQL 문을 실행하여 만료된 데이터를 이동하거나 삭제할 수 있습니다.
<?php $sql = 'DELETE FROM main_table WHERE created_date < SYSDATE - 365'; $stmt = oci_parse($conn, $sql); if (!$stmt) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $result = oci_execute($stmt); if (!$result) { $e = oci_error($stmt); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } ici_free_statement($stmt); ?>
아카이브 테이블의 데이터는 PHP를 사용하여 쿼리할 수 있습니다.
<?php $sql = 'SELECT * FROM archive_data'; $stmt = oci_parse($conn, $sql); if (!$stmt) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } $result = oci_execute($stmt); if (!$result) { $e = oci_error($stmt); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } while ($row = oci_fetch_array($stmt, OCI_ASSOC)) { echo $row['ID'] . ", " . $row['NAME'] . ", " . $row['CREATED_DATE'] . "<br> "; } oci_free_statement($stmt); ?>
PHP와 Oracle 데이터베이스를 결합하면 데이터 보관 및 보관 기능을 효율적으로 구현하여 데이터베이스 성능을 최적화하고 쿼리 속도를 향상시킬 수 있습니다. 실제 애플리케이션에서는 데이터 타임스탬프, 중요도 등을 기반으로 보관 전략을 공식화할 수 있습니다. 이 문서에 제공된 코드 예제는 보관 구현을 위한 참조로 사용할 수 있으며 개발자가 보관 프로세스를 신속하게 구축하는 데 도움이 될 수 있습니다.