기본 데이터 처리: 병렬 처리

공부하는 감자·2024년 3월 15일
0

MySQL

목록 보기
21/74
post-thumbnail

병렬 처리

여기서 설명하는 병렬 처리는 하나의 쿼리를 여러 스레드가 작업을 나누어 동시에 처리한다는 것을 의미한다.

  • MySQL 8.0 버전부터 용도가 한정되어 있긴 하지만 MySQL 서버에서도 쿼리의 병렬 처리가 가능해졌다.

병렬 처리 옵션

  • 아직 쿼리를 여러 개의 스레드를 이용해 병렬로 처리하게 하는 힌트나 옵션은 없다.
  • MySQL 8.0에서는 innodb_parallel_read_threads 시스템 변수를 이용해 하나의 쿼리를 최대 몇 개의 스레드를 이용해서 처리할 지 변경할 수 있다.
SET SESSION innodb_parallel_read_threads=1; 

병렬 처리하는 경우

  • MySQL 8.0에서는 아무런 WHERE 조건 없이 단순히 테이블의 전체 건수를 가져오는 쿼리만 병렬로 처리할 수 있다.
SELECT COUNT(*) FROM tb_test;

성능

  • 병렬 처리용 스레드 개수가 늘어날수록 쿼리 처리에 걸리는 시간이 줄어든다.
    • innodb_parallel_read_threads 시스템 변수로 스레드 개수 조정
  • 하지만 병렬 처리용 스레드 개수가 서버에 장착된 CPU의 코어 개수를 넘어서는 경우에는 오히려 성능이 떨어질 수 있다.

Reference

참고 서적

📔 Real MySQL 8.0

profile
책을 읽거나 강의를 들으며 공부한 내용을 정리합니다. 가끔 개발하는데 있었던 이슈도 올립니다.

0개의 댓글