본문 바로가기

SQL

PostgreSQL DELETE, TRUNCATE, DROP은 뭐가 다를까? PostgreSQL에서 데이터를 삭제하다 보면 DELETE, TRUNCATE, DROP을 만나게 된다.셋 다 무언가를 지우는 명령어라 처음에는 비슷하게 느껴질 수 있다. DELETE FROM sample;TRUNCATE TABLE sample;DROP TABLE sample; 위 세 명령어를 실행하면 모두 테이블에 있던 데이터가 사라진다.그런데 결과는 완전히 다르다.가장 간단하게 정리하면:DELETE→ 데이터를 지운다.TRUNCATE→ 테이블의 데이터를 한꺼번에 비운다.DROP→ 테이블 자체를 없앤다. 이번에는 각각 어떤 차이가 있는지 직접 비교해봤다.테스트용 테이블 만들기먼저 간단한 테이블을 하나 만들어보자. CREATE TABLE sample_user ( id SERIAL PRIMARY KEY,.. 더보기
PostgreSQL에서 누가 어떤 SQL을 실행했는지 확인할 수 있을까? 이전에 PostgreSQL에서 현재 접속 중인 사용자를 확인하는 방법을 정리한 적이 있다.pg_stat_activity를 조회하면 어떤 사용자가 어느 IP에서 접속하고 있는지 확인할 수 있었다. SELECT datname, usename, client_addr, application_name, stateFROM pg_stat_activity; 그런데 접속자를 확인하고 나니 또 하나 궁금해졌다.누가 접속했는지는 알겠는데, 그 사용자가 어떤 SQL을 실행했는지도 확인할 수 있을까?결론부터 말하면 현재 실행 중인 SQL은 비교적 쉽게 확인할 수 있다.문제는 이미 실행이 끝난 SQL을 확인하고 싶을 때다.현재 실행 중인 SQL 확인하기pg_stat_activity에는 접속 정보뿐만 아.. 더보기