아하
생활

생활꿀팁

탈퇴한 사용자
탈퇴한 사용자

대용량 데이터 조회시 cpu할당 관련 문의드려요

다름이 아니라 갑자기 궁금한게 있어 이렇게 글을 문의드려요

만약에 A라는 테이블에 109개의 컬럼이 있고, A테이블에 5억건의 데이터가 있다고 할때

A라는 테이블에 인덱스나 커서는 없구요

단순하게 조건문을 이용하여 A를 조회하면 쿼리 속도가 느려지거나 해당 서버의 CPU할당량이

많아질까요??

55글자 더 채워주세요.
4개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자

    안녕하세요?

    예를 들어서 설명해주셨는데 상황에 따라서 다릅니다.

    A테이블이 메모리에 없어서 디스크를 사용하면 다른 디스크 사용하는 쿼리가 영향을 받아서 느려질 수도 있고

    A테이블을 어떻게 조회하냐에 따라서 CPU를 몇개 쓸지가 달라집니다.

  • pay2id.com
    pay2id.com

    인덱스가 없다면, 엄청나게 속도가 느릴것이구요

    조건문에 사용되는 필드명을 인덱스화하여 처리를 하셔야

    인덱스 없이 처리하는것보다 엄청나게 빠른 속도를 맛보실수 있을것입니다

    인덱스가 있다 없다 차이는 주소록에서 체감할수 있는데요

    본인의 수첩에 1만명의 이름이 있는데 ㄱ,ㄴ,ㄷ 순으로 정리(즉, 인덱스)가 안되어 있다면?

    1만명 모두들 검사해야 합니다 (cpu와 hdd,sdd에 부하걸림)

    하지만 ㄱ,ㄴ,ㄷ 식으로 인덱스 되어 있다면? 해당 자음에 해당되는 명단만 확인을 하면 되니

    엄청나게 일이 줄어드는거죠 (cpu와 hdd,sdd에 부하가 적게 걸림)

    이렇듯 디비관련 질의를 하실때는 인덱스를 꼭 유념해두셔야 합니다^^

  • 안녕하세요

    컴퓨터의 cpu 상태 또는 메모리 상태 또는 하드디스크 등등 속도 관련해서 여러가지 이유로 복합적으로 쿼리 수행 속도에 영향을

    주기때문에 단순히 이게 빠르다 저게 빠르다 하기에는 하기 힘든 부분이 있습니다

    단순 select 조회 라면 속도 나지싶습니다 기본적으로 테이블 생성시 기본키에 인덱스가 들어가기 때문입니다.

  • DB마다 서버의 CPU 할당과 메모리 사용은 다 다릅니다. 조건문을 처리하는 방법도 조금씩 다르고요, 왜냐하면 구현 방법이 다르고 내부에 DB의 테이블 구조와 컬럼의 튜플을 저장하는 방법이 조금씩 다르니까요.

    다시 질문 주신 내용으로 돌아가면, 인덱스가 없이 5억건의 데이터가 있는 테이블이 문제겠죠. 보통 이러한 경우 테이블에 대한 질의문 최적화를 진행합니다.

    1. 수동으로 인덱스 추가

    2. 테이블의 데이터를 파티션

    3. 질의문에 대한 최적화(인덱스나 성능을 위한 조언 등)

    오라클 DB라면 관련된 내용이나 컨설팅, 조언을 받을 수 있을 겁니다. 다만 IBM DB2, Tibero, Mysql 등이라면 주변에 DB전문가나 관련 지인의 도움을 적극적으로 찾아봐야 도움이 되실 겁니다.