database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31328 게시물 읽기
No. 31328
80만건 데이터 조회 쿼리 동시에 요청시 실행시간이 요청수*실행시간 만큼 걸리는 현상...
작성자
도와주세요(bellight)
작성일
2021-01-14 01:51ⓒ
2021-01-14 02:29ⓜ
조회수
3,324

안녕하세요.

속도가 너무 느려서 튜닝을 하려고 하는데 하루종일 찾아봐도 답이 없어 질문드립니다.
현재 a테이블에 약 80만건의 데이터가 존재하며, 조회쿼리는 약 4초정도 소요됩니다.
다만 이 쿼리를 클라이언트 2개에서 동시에 요청할경우, 이상하게도 둘다 8초가 소요됩니다.(aws rds- cpu1/ram 2gib/mysql8)
3개를 동시에 요청하면 셋다 12초가 걸려요....

근데이걸 제가 로컬 서버(mac환경/mysql5.6)에서 그대로 데이터 덤프떠서 똑같이 요청하면 마찬가지로 한 쿼리에 4초가 걸리는데, 로컬에서는 여러개를 동시에 요청해도 그냥 전부4초에 반환됩니다.
mysql 버전차이일까요 아니면 rds가  cpu가 하나라서 그럴까요...

혹시 락이 걸리나 싶어 동시에 요청한 이후 실행도중에 show full precresslist 로 찍어보면 실제로 2개의 쿼리가 동시에 executing이라고 떠있습니다.
로컬환경/rds환경 다 해당 테이블의 경우 innodb이고,

쿼리내용은 update없는 그냥 select이지만, 내부적으로 셀프조인(group by 포함) 및 sub query가 들어가있습니다.

db쪽은 잘 모르다보니 뭘 확인해야하는지도 감이 잘 잡히지 않습니다 도와주세요.....

이 글에 대한 댓글이 총 4건 있습니다.

무언가 느낌이 serial하게 쿼리가 실행되는 것 같은 느낌이 듭니다. 


두가지를 확인해보십시오. 

#### 환경설정이 어찌되어 있는지 

mysql> show global variables like 'tx_isolation'


#### 현재 세션이 어떻게 되어 있는지 

mysql> show session variables like 'tx_isolation';   


만약 이 결과값이 "serializable"이라면 isolation level을 달리 해보세요. 

모드는  read-uncommitted, read-committed, repeatable-read, serializable이 고 


변경은 대략 아래와 같습니다. 

set global tx_isolation = 'read-uncommitted'; 


isolation level을 변경하는 것은 의미를 파악하시느 후에 운영에 적용하시길 


 

.님이 2021-01-14 10:53에 작성한 댓글입니다. Edit

RDS면 사양변경이 쉬우니

CPU나 RAM 사양 변경해서 테스트 해 보세요.

SELECT만 있으면 LOCK문제는 아닌 것으로 보입니다.

조회되어 내려오는 결과가 많다면

네트워크 속도 문제일 수 있습니다.

박인호(paerae)님이 2021-01-14 11:57에 작성한 댓글입니다.

transaction_isolation은 현재 REPEATABLE_READ로 되어있습니다!

그리고 방금 rds를 cpu및 ram전부 2배씩올려봤는데 4초 걸리는 쿼리가 3초로 줄긴했으나, 2개를 동시에 요청시 6초 가 걸리는 문제는 똑같이 발생합니다.ㅠㅠ


혹시 몰라 max_connection도 확인해봤으나, 현재 max_connection값은 500이며, thread_connect값은 10이 채 되지 않습니다. db정말 어렵네요..

작성자님이 2021-01-14 15:38에 작성한 댓글입니다. Edit

isolation level을 repeatable read로 사용하셔야한다면 select 되는 건수를 최소화 하는게 좋을 듯 합니다. 필터링 조건과 index를 사용하던가 해서요.

정상규(pajama)님이 2021-01-14 22:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31333mysqldump 파일명 지정 관련 질문 [2]
왕초보
2021-03-17
2977
31332php 에서 원격 mysql 접속
AALS
2021-03-05
2944
31330재귀호출에 의한 하이락키 구조의 트리형태의 정렬 [4]
김씨
2021-01-22
3323
3132880만건 데이터 조회 쿼리 동시에 요청시 실행시간이 요청수*실행시간 만큼 걸리는 현상... [4]
도와주세요
2021-01-14
3324
31327mac 으로 mariadb 설치 후 데이터베이스 생성이 안됩니다.. [4]
따봉도치
2021-01-05
4412
31326값이 없는 년월 찾기 질문드립니다. [1]
피어스
2020-12-30
2800
31325mysql 5.7.28버전에서 password()함수는 어찌해야하나요.. [3]
이기자
2020-12-30
3000
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다