- Today
- Total
목록서브쿼리 (2)
내 머릿속 데이터베이스
다수의 테이블을 합쳐서 통계를 산출 시에 UNION을 많이 사용하게 된다. UNION과 UNION ALL의 차이는 다들 알고 있으리라 언급하자면 중복 데이터를 제거하는 과정이 UNION에 포함되어있다. 테이블을 합칠 때 UNION으로 합치게 되면 각 테이블마다 정렬이 들어가는 것을 실행계획을 통계 알 수 있다.(그래서 느리다.) UNION ALL 을 사용하게 되면 중복 상관없이 그냥 합쳐주기만 해서 빠르다.다수의 테이블인 경우엔 각 테이블마다 중복데이터를 제거해가면서 합치는 것보다 일단 다 합쳐놓고 중복데이터를 제거하는게 빠르다. 실제로 UNION을 이용한 쿼리에선 HIVE의 CBO(Cost-based Optimizer)가 동작하지 않는다. UNION ALL을 이용하여 테이블을 합치려다가 HIVE는 CT..
데이터 삭제시 다음과 같은 에러메시지가 뜨는 경우, Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 원인 MYSQL 워크벤치에서 데이터 삭제 시, WHERE절에 primary key를 지정해서 삭제하지 않는 경우 저런 메세지가 뜬다. 예) DELETE FROM table WHERE cost > 30000 해결방법 1. 서브쿼리를 이용해서 key값을 가져와서 지운다. 예) DELETE FROM ..