본문 바로가기
반응형

[개발] 데이터베이스20

Driving 테이블의 정의와 선정 방법 Driving 테이블조인시 먼저 액세스되는 쪽을 드라이빙 테이블(DRIVING TABLE, OUTER TABLE)이라고 하며 나중에 액세스 되는 테이블을 드리븐 테이블(DRIVEN TABLE, INNER TABLE)이라고 합니다. 인덱스(INDEX)의 존재 및 우선순위 혹은 FROM 절에서의 TABLE 지정 순서에 영향을 받으며 어느 테이블이 먼저 액세스되느냐에 따라 속도의 차이가 크게 날 수 있으므로 대량의 데이터를 다룰 때 정말 중요합니다. 조건을 만족하는 테이블과 해당하는 로우 데이터 수가 다음과 같다고 가정합니다. A 테이블: 1억건B 테이블: 100건 이 때, 조인시 드라이빙 순서에 따라 속도의 확연한 차이가 발생할 수 있습니다. A 테이블을 드라이빙하게 되면 최대 1억 번을 반복하며 B 테이블.. 2024. 12. 1.
트랜잭션 격리 수준 트랜잭션은 ACID라는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability) 를 보장해야 합니다. 원자성: 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공하든가 모두 실패해야 합니다.일관성: 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 합니다.격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리합니다.지속성: 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 합니다. 이번 포스팅에서는 격리성에 대해서 알아보겠습니다. 트랜잭션 간에 격리성을 완벽히 보장하려면 트랜잭션을 거의 차례대로 실행해야 하며, 이 경우 동시성 처리 성능이 매우 나빠집니다.격리 수준은 4단계가 있습니다. READ_.. 2024. 10. 26.
에러) Column in field list is ambiguous 원인SQL 쿼리에서 동일한 이름의 컬럼이 여러 테이블에 존재할 때 발생합니다.이 경우 MySQL이 어느 테이블의 컬럼을 사용할지 명확하지 않기 때문에 이 에러를 발생시킵니다.SELECT id, nameFROM users u INNER JOIN orders o ON u.id = o.user_id 해결 방법테이블 명시하기 (또는 별칭 사용하기)동일한 이름의 컬럼이 있을 경우, 어느 테이블의 컬럼을 사용할 것인지 명확하게 지정합니다.SELECT u.id, u.name, o.idFROM users u INNER JOIN orders o ON u.id = o.user_id 2024. 10. 23.
Redis 소개 Redis(레디스)는 오픈 소스 비관계형(NoSQL) 데이터베이스로, 주로 인메모리 데이터 구조 서버로 사용됩니다. 즉, 데이터를 메모리(RAM)에 저장하고 관리하며, 매우 빠른 속도를 자랑합니다. Redis의 주요 특징인메모리 데이터 저장:Redis는 데이터를 메모리에 저장하므로, 매우 낮은 지연 시간과 높은 처리량을 제공합니다. 이는 실시간 애플리케이션이나 캐시 서버로 사용하기 적합합니다.다양한 데이터 구조 지원:Redis는 단순한 키-값 저장소 이상으로, 다양한 데이터 구조를 지원합니다. 예를 들어, 문자열(Strings), 리스트(Lists), 집합(Sets), 정렬된 집합(Sorted Sets), 해시(Hashes), 비트맵(Bitmaps), 하이퍼로그로그(HyperLogLogs), 지오스페이셜.. 2024. 9. 2.
반응형