데이터베이스
-
트랜잭션 격리 수준(Isolation level)데이터베이스 2023. 2. 26. 22:31
트랜잭션의 격리 수준(Isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다. 트랜잭션의 격리 수준 은 다음과 같은 4가지가 있다. READ UNCOMMITTED(커밋 전 읽기) READ COMMITTED(커밋 후 읽기) REPEATABLE READ(반복 읽기) SERIALIZABLE(직렬화 가능) 1. READ UNCOMMITTED 각 트랜잭션에서의 변경 내용이 commit 이나 rollback 여부에 상관없이 다른 트랜잭션에서 보여지게 되는 수준으로써 거의 쓰지 않는 격리 수준이라고 볼 수 있다. 2. READ COMMITTED PostgreSQL 에서 기본으로 사용되고 있는 수..
-
sql 특수 상태 검색(조건 상태 검색)에 관한 글데이터베이스 2022. 8. 7. 18:22
목록에서 상태를 조건 검색해야 되는 상황. 여기서 단순히 status 칼럼 값만 검색을 하면 단순히 in 절로 검색을 하면 해결이 된다. 하지만 상태를 검색하는데 단순히 status만 검색을 하는 것이 아니라 다른 테이블의 상태 값과, 특정 상태인 경우 상태값과 날짜 체크를 같이 해야 되는 경우가 있어 처음 해당 사항을 진행하려고 할때 고민을 하게 되었다. 그래서 아무 생각없이 하려고 할때는 (a.status = 'A' and b.order_status = 'B') -- 1 or (a.status = 'A' and b.order_status = 'C') -- 2 여기서 1 번과 2번이 목록에서는 필터하려고 하는 상태조건에 따라 1번을 할수도 있고, 2번만 검색하려고 할 수도 있다. 이런식으로 하게되면 문..
-
170904_TIL데이터베이스 2017. 9. 12. 17:09
mysql sum 함수로 결과를 조회해보면해당 값이 없는 경우, 0 이 아니라 null 로 나오는 것을 확인하였습니다. 해당 경우에는 대응하는 방법이 두가지가 있는데, COALESCE(SUM(rating), 0)ISNULL(SUM(rating), 0) 이렇게 두가지가 있습니다. 이렇게 보면 ISNULL 함수가 좀더 직관적이라서 더 많이 쓰이게 되는것 같습니다. 사용법 : COALESCE(param1, param2)설명: param1의 값이 null이면 param2의 값으로 반환 한다. 차이점에 대해서 찾아보았습니다.COALESCE() is in all the major databases, while IFNULL() isn't in SQL Server which uses ISNULL()instead. Pe..