DB (4) 썸네일형 리스트형 oracle Cursor-based Pagination - 페이징 처리 페이징 처리 offset -> 데이터 재조회 cursor -> OFFSET 파라미터를 인덱스로 전달하는 오프셋 페이징과 달리 커서 페이징은 조회가 중단된 마지막 페이지를 담은 커서라는 포인터(DataSet의 특정 레코드, 로우)를 파라미터로 전달한다. timestamp 열을 기준으로 하는 커서가 있다고 가정했을 때, 커서는 마지막으로 조회된 피드의 타임스탬프가 9월 12일 16시 2분임을 알려주고 이 시간 전의 5개의 피드를 불러온다. https://bbbicb.tistory.com/40 직열성 위반 dirty Read 더티리드 Read Committed Non-Repeatable Read 한 트랜잭션 내에서 같은 쿼리를 두번 수행할때, 다른 트랜잭션이 값을 수정함으로 해서 두 쿼리가 서로 다르게 나타나는 현상 - select ~ for update를 해서 처리하고자 하는 내용에 lock을 걸어서 이를 해결 Repeatable Read read 후 인출하려는데 돈이없음 Phantom Read Serializable Read 로해결 insert update 금지 Phantom Conflict 서로 충돌하지 않는 두 개 이상의 트랜잭션이 삽입되려고 하는 가상의 튜플에 의해 충돌이 발생되는 현상 트랜잭션의 일관성이 보장되지 않는 현상 t1 ,t2 실행결과와 t2,t1실행결과가 다르다 그게 팬텀 충돌 tab.. 동시성제어(트랜잭션) - 다수의 트랜잭션이 경쟁시 발생할 수 있는 문제 - Dirty Read : 아직 트랜잭션이 완료되지 않은 상황에서 데이터에 접근을 허용할 경우 발생할 수 있는 데이터 불일치 - Non-Repeatable Read : 한 트랜잭션에서 같은 쿼리를 두번 실행했을 때 발생할 수 있는 데이터 불일치 - Phantom Read : 한 트랜잭션에서 일정 범위의 레코드를 두번 이상 읽을 때 발생하는 데이터 불일치 - 트랜잭션 격리 수준 (isolation level) - DEFAULT : 기본 격리 수준 (DB isolation level 따름) - READ_UNCOMMITTED (level 0) : 커밋되지 않은 데이터에 대한 읽기 허용 (Dirty Read 발생 할 수 있음) - READ_COMMITTED (l.. JDBC와 DBCP DBCP란 DBCP의 개념 DBCP란 DataBase Connection Pool의 약자로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 합니다. 일반적으로 JDBC를 이용한다면 아래와 같은 순서로 DB에 접속합니다. DB 접속을 위한 JDBC 드라이버 로드 getConnection 메소드로부터 Connection 객체를 얻음 쿼리 수행을 위한 PreparedStatement 객체 생성 executeQuery를 실행해서 결과를 받아옴 처리가 완료되면 사용된 리소스들을 close하여 반환 여기서 비효율적인 부분은 1번과 2번 입니다. DB 연결 시 마다 Driver를 로드하고 커넥션 객체를 얻는 작업을 반복하죠. 이 부분을 효율적으로 처리하도록 바꾸는 것이 DBCP의 역할 입니다. DBCP를 사용하게 .. 이전 1 다음