본문 바로가기
728x90
반응형

MYSQL5

[MySQL] FULL PARALLEL 병렬처리 서론몇 백만 건 이상의 데이터를 조회하게되면 Timeout 이슈가 발생할 수 있다.FULL, PARALLEL 등 병렬 SQL 처리에 대한 개념을 확인해보면서 적용 방안에 대해 생각해보자.시리얼 SQL vs 병렬 SQL시리얼 SQL소량의 데이터 처리에 적합, 시스템 영향도가 적음, 온라인 처리 시스템SQL> SELECT COUNT(*) FROM 고객 c;하나의 프로세스가 SQL 조건에 맞는 데이터를 모두 검색하여 반환병렬 SQL대용량 처리에 적합, 시스템 자원 점유, DSS/배치 서버Oracle SQL> SELECT /*+ FULL(c) PARALLEL(c 4) */ * FROM 고객 c;MySQL에서는 병렬처리를 위해 innodb_parallel_read_threads 시스템 변수를 제어할 수 있다.My.. 2024. 7. 29.
[Java] Mybatis Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous 해결 서론Mybatis 코드 개선 작업에서 발생한 이슈를 정리해본다.Cause: java.sql.SQLIntegrityConstraintViolationException: Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous;해당 이슈는 여러 테이블과 서브쿼리, 조인(join)을 사용하는 SQL 문에서동일한 컬럼 이름이 여러 테이블에 존재할 때 발생할 수 있다.문제 발생 SQL 예제아래 SQL은 서브쿼리 안에서 id 컬럼이 모호한 문제가 있다.SQL 엔진은 서브쿼리 내에서 어느 테이블의 id 컬럼을 사용해야 하는지 결정할 수 없다.SELECT a.id, a.name, b.status FROM table1 aLEFT JOIN table2 .. 2024. 7. 19.
[SQL] 불필요한 쿼리 제거 작업 서론자신이 작업한 코드를 포함한 모든 결과물은 Legacy가 된다.다만, 개선하려는 시점의 주제가 무엇이냐에 따라 알고리즘 개선이 될지 비즈니스 로직 개선이 될지 결정될 수 있다.실무를 수행하면서 2년 전 mybatis로 개발된 SQL에서 시스템 고도화에 따라 사용할 수 없거나 불필요한 쿼리가 발견되어 최적화를 위해 해결하던 도중 간단한 이론에 대해 정리해본다.이론적 배경SQL 쿼리는 어떻게 동작하는가?1) FROM : 어느 테이블에서 찾을 것인가?2) JOIN : 어떤 테이블을 연관지을 것인가?3) ON : 연관 조건은 어떤 것인가?4) WHERE : 어떤 필터를 적용할 것인가?5) GROUP BY : 값을 기준으로 그룹화를 수행할 것인가?6) HAVING : WHERE과 유사하지만 그룹에 대한 필터를.. 2024. 5. 8.
[MySQL] 테이블 명세서 생성 스크립트 SELECT t1.table_name, t1.table_comment, column_name, data_type, column_type, column_key, is_nullable, column_default, extra, column_comment FROM (SELECT table_name, table_comment FROM information_schema.TABLES WHERE table_schema='DB명') t1, (SELECT table_name, column_name, data_type, column_type, column_key, is_nullable, column_default, extra, column_comment, ordinal_position FROM information_sch.. 2022. 5. 19.
[VWORLD] WebGL WMS/WFS 맛보기 정리 collectionProp 요소 활용 properties : 해당 영역에 대한 정보 geometry(MultiPlygon) 요소는 자체 공간 DB 구축 시 참고하면 될 듯 (지번 or 토지와 매칭) 2022. 5. 17.
728x90
반응형