bellight
60
2021-01-14 02:14:21 작성 2021-01-14 16:08:02 수정됨
5
224

[MYSQL8] 4초 걸리는 쿼리를 동시에 2개 요청시 8초가 걸리는 현상


안녕하세요.

DB관련해서 물어볼 사람이 없다보니 또 질문합니다...


현재 4초 가량 소요되는 조회 쿼리 하나를 튜닝하려고 합니다.

근데 aws rds 환경(mysql8/cpu1/ram 2gib)에서 쿼리를 2개의 클라이언트에서 동시에 요청할경우, 소요되는 시간이 8초가 되어버리는 이슈가 있습니다. 3개를 동시 요청하면 12초정도가 걸리고요.


같은 데이터 그대로 가져와서 로컬에서 (mysql5.6)돌리면 몇개를 동시에 요청하던 전부 4초정도만 소요됩니다.

mysql 버전차이로 이런 현상이 발생할수 있을까요?

rds기본 파라미터에서 딱히 성능에 이슈될만한걸 건드린건 없습니다.


혹시 락이 걸리나 싶어 동시에 요청한 이후 실행도중 show full processlist 찍어보면 실제로 2개의 쿼리가 동시에 executing으로 되어있어요.

로컬환경/rds환경 다 해당 테이블의 경우 innodb이고, 쿼리내용은 update없는 그냥 select이지만, 셀프조인,groupby,서브쿼리 등을 혼용해서 쓰고있습니다.

transaction isolation 이 serial로 적용되어있지도 않습니다.


비슷한 현상을 알고계신분 계시면 키워드라도 부탁드립니다.

0
  • 답변 5

  • 쿠잉
    956
    2021-01-14 05:12:57

    rds 와 로컬과 플랜이 같나요? 

  • bellight
    60
    2021-01-14 08:55:59

    플랜이 같다는건 mysql이 돌아가는 서버 스펙을 말씀하시는건가요? 로컬환경은 맥이라 쿼드코어이고 램도 16기가이긴합니다..

  • rezigrene
    1k
    2021-01-14 09:40:23

    cpu를 2배로 늘려보시면?

  • yeori
    1k
    2021-01-14 09:47:33

    공식 문서에서 아래와 같은 내용이 있네요

    https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Troubleshooting.html

    Maximum MySQL and MariaDB connections

    The connection limit for a DB instance is set by default to the maximum for the DB instance class. You can limit the number of concurrent connections to any value up to the maximum number of connections allowed. Use the max_connections parameter in the parameter group for the DB instance.

    문서에 나온대로 설정을 확인해볼 필요가 있습니다.

  • 쿠잉
    956
    2021-01-14 10:05:25

    sql plan을 말씀드린거고

    explain

    sql ;

    해서 봐보세요

  • 로그인을 하시면 답변 을 등록할 수 있습니다.