• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 포스트글 썸네일 이미지
      4장 - 집약과 자르기
      31514:
      GROUP BY 구를 사용했을 때 SELECT 구에 입력할 수 있는 건 상수, 집약키, 집약 함수 뿐이다.집약을 사용하면 내부적으로 정렬 또는 해시 알고리즘을 사용하는데, 최근에는 대부분 해시를 사용하는 경우가 많다.예를 들어 GROUP BY 구에 지정되어 있는 필드를 해시 함수를 사용해서 해시키로 변환하고, 같은 해시키를 가진 그룹을 모아 집약하는 방식이다.특히 해시의 성질상 GROUP BY의 유일성이 높으면 더 효율적으로 작동한다.GROUP BY 성능정렬과 해시 모두 메모리를 많은 사용하므로, 충분한 워킹 메모리가 확보되지 않으면 스왑이 발생한다.스왑이 발생하면 저장소 위의 파일이 사용되면서 굉장히 느려진다.따라서 연산 대상 레코드 수가 많은 GROUP BY 구를 사용할 때 충분한 성능 검증을 해줘야..
      • 2024-09-20 13:37:22
    • 포스트글 썸네일 이미지
      9장 - 서브쿼리
      31514:
      SQL 구문이 실행을 완료한 후 데이터베이스 서버가 서브쿼리 결과에 할당된 메모리를 해제한다.비상관 서브쿼리 - 독립적으로 실행되는 서브쿼리select city_id, cityfrom citywhere country_id (select country_id from country where country = 'India');상관 서브쿼리 - 하나 이상의 열을 참조하는 포함 구문에 의존적인 서브쿼리따라서 포함 구문이 실행되기 전까지 실행되지 않는다.select c.first_name, c.last_namefrom customer cwhere 20 = (select count(*) from rental r where r.customer_id = c.customer_id);주의할 점은 포함 쿼리의 각 ..
      • 2024-09-20 13:15:59
    • 포스트글 썸네일 이미지
      8장 - 그룹화와 집계
      31514:
      count(*)는 테이블의 전체 행을 반환하고, count(컬럼명)은 null 값을 제외하고 컬럼에 저장된 값의 수를 반환한다.WITH ROLLUPselect 컬럼명1, 컬럼명2, count(*)from tablegroup by 컬럼명1, 컬럼명2 with rollup전체 행의 개수와, (컬럼명1, 컬럼명2)로 묶인 그룹의 개수도 반환된다.GROUP BY 절을 포함하는 쿼리에 필터를 추가할 때, WHERE 절에 써서 원시 데이터에 대해 동작하도록 할지 아니면 HAVING 절에 써서 그룹화된 데이터에 대해 동작하도록 할지는 신중하게 고려해야 한다.
      • 2024-09-19 16:44:30
    • 포스트글 썸네일 이미지
      3장 - SQL의 조건 분기
      31514:
      SQL은 조건 분기를 할 때, CASE 식을 사용하지만 UNION을 사용하는 경우도 있다.하지만 UNION을 사용하면 내부적으로 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석되기 때문에 테이블에 접근하는 횟수가 많아져서 I/O 비용이 증가한다. UNION 조건 분기의 문제점-- UNION을 사용한 조건 분기 쿼리(예시)select item_name, year, price_tax_ex as price from items where year = 2002;좋지 않은 가독성TABLE FULL ACCESS로 2번 접근 -> 성능 감소해결 방법SELECT item_name, year, CASE WHEN year = 2002 THEN price_tax_in END AS price FROM item..
      • 2024-09-19 15:08:13
    • 쿼리가 무한 루프에 빠지는 문제
      31514:
      상황 및 문제나는 다음과 같은 파이썬 코드로 MySQL 테이블을 생성했다.import mysql.connector# MySQL 연결 설정mydb = mysql.connector.connect( host=*****, user=*****, password=*****, database=*****)# 커서 생성mycursor = mydb.cursor()# 테이블 생성mycursor.execute("""CREATE TABLE IF NOT EXISTS table ( ...)""") 하지만 특정 필드의 이름에 오타가 있다는 사실을 알게 되어 MySQL 서버에 접속하여 DROP TABLE 쿼리문을 실행했지만 무한 루프에 빠지게 되었다. 원인MySQL 커넥터는 트랜잭션 기반으로 동작한다. 만약..
      • 2024-09-19 14:10:32
    • 포스트글 썸네일 이미지
      6장 - 집합 연산자
      31514:
      집합 연산자 UNION, INTERSECT, EXCEPT를 사용하려면 두 테이블은 다음과 같은 조건을 가져야 한다.두 테이블은 같은 수의 열을 가져야 한다.각 열의 자료형은 서로 동일하거나, 서버가 서로 변환할 수 있어야 한다.UNION 연산자의 경우 중복을 포함하기 위해서는 UNION ALL을 사용한다.MySQL 버전 8.0은 INTERSECT와 EXCEPT 연산자를 지원하지 않는다.집합 연산자 사용 후에 ORDER BY를 통해 데이터를 정렬할 수 있다.
      • 2024-09-12 17:45:27
    • 포스트글 썸네일 이미지
      4장 - 필터링
      31514:
      not 연산자를 포함하는 where 절은 읽기 어려울 수 있으므로, 두 번째 코드처럼 변경하면 좋다.where not (first_name = 'STEVEN' or last_name = 'YOUNG') and create_date > '2006-01-01'where first_name 'STEVEN' and last_name 'YOUNG' and create_date > '2006-01-01'select customer_id, rental_datefrom rentalwhere rental_date = '2005-06-14';위와 같이 부등호를 사용하지 않고 between을 사용할 수 있다.select customer_id, rental_datefrom rentalwhere rental_date b..
      • 2024-09-11 17:47:34
    • 포스트글 썸네일 이미지
      5장 - 다중 테이블 쿼리
      31514:
      한 테이블에 존재하는 값이 다른 테이블에도 있는지 확인하려고 외래키 제약조건을 선택적으로 생성할 수 있다. 다만, 두 테이블을 조인하기 위해 외래키 제약조건을 반드시 생성할 필요는 없다.내부 조인을 사용한다고 해도 조인 유형을 명시하는 것이 좋다.조인을 수행할 때 테이블의 순서는 중요하지 않다.SQL은 비절차적 언어이고, DBMS의 옵티마이저가 실행 계획을 세울 때, 어떤 테이블을 시작점으로 할 지 선택하고 조인의 순서를 결정한다.그러나 쿼리의 테이블이 항상 특정 순서로 조인되어야 하는 경우, DBMS 마다 다른 부가적인 설정을 통해 순서를 유지할 수 있다.책에서는 단순히 조인을 하는 것보다 하나 이상의 서브쿼리를 사용하는 편이 성능 및 가독성 측면에서 유리하다고 하는데, 개인적으로 나는 조인이 더 유리..
      • 2024-09-11 17:45:44
    조회된 결과가 없습니다.
    [1][···][10][11][12][13][14]
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바