Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

 

동일한 쿼리의 count와 data가 매우 느리게 작동합니다.

 

그래서 똑같은 쿼리를 DB에서 직접 수행하면 0.0초, 0.0초가 나옵니다.

 

홈페이지에서 해당페이지를 불러오면 디버그에 슬로우쿼리로 나오면서, 늦게 호출되는지 모르겠습니다.

 

아래는 디버그 캡쳐 입니다.

 

비슷한현상 또는 DB 튜닝에 대한 조언을 통해 해결 가능하시면 조언 구합니다.

 

화면 캡처 2022-11-23 181205.png

 

화면 캡처 2022-11-23 191700.png

  • profile

    도와드리고 싶지만, 꼭 필요한 부분을 너무 많이 가리셔서

    저도 답을 ???????? 가려야 ???????? 할 것 같습니다.

    인간적으로 쿼리 몇 개는 처음부터 끝까지 ???????? 보여주셔야 하는 거 아닌가요...

  • profile ?

    흐미 최대의 명언이십니다. 존경

  • profile ?
    쿼리에 따라서 직접호출과 라이믹스를 통한 호출의 시간차가 있다는 말씀이신거죠? (네트워크지연시간등을 제외하고도 차이가 많이나서요..)몰랐습니다..ㅠㅠ 우문현답해주셔서 감사합니다..
  • ? profile

    라이믹스에서는 변수 자리에 ?를 넣어서 prepared statement로 쿼리하고, rx_ 접두사 때문에 조인할 때 alias 처리가 들어가기도 하는데... 직접 호출할 때는 그렇게 하지 않으실 테니 100% 똑같지는 않겠지요. 그러니까 어느 부분이 다른지 보고 싶다는 얘깁니다.

     

    무엇이 문제와 관련 있고 무엇이 관련 없는지 질문자가 임의로 판단하면 곤란합니다. 만약 딱 보고 그걸 판단할 능력이 있다면 질문할 필요도 없는 고수이겠지요.^^

  • profile ?
    직접 호출할때도 그렇게 했기때문에 말씀드리는것입니다..
    실제 쿼리를 DB에도, 라이믹스에도 똑같이 작성하여 서로 다르지 않기 때문에 속도와 관련한 문의 드리고자 걸린 시간만 캡쳐해서 올렸습니다. 저는 무엇이 문제와 관련있고 없는지를 판단한 글을 게재한적이 없는데.. 그렇게 생각하시니 마음이 쓰입니다...
    질문을 정상적으로 올리지 못한 제 불찰이오니 너그럽게 생각해주시기 바랍니다. 그래도 바쁘실텐데 시간 내어 주셔서 감사합니다. 질문은 더이상 발전시키지 않고 종결하도록 하겠습니다.
  • ? profile

    쿼리문의 어느 부분이 유의미한지, "똑같이 작성하여 서로 다르지 않다"는 말씀이 사실인지 아닌지도 모두 답변자가 판단할 사항이라는 뜻입니다. 질문글에서는 있는 그대로의 증상을 최대한 자세히 올려주시기만 하면 됩니다.

    무작정 모든 정보를 내놓으라고 갑질하는 것이 아니라, 다른 부분이 있을지도 모른다는 합리적인 의심이 들기 때문에 요청하는 것입니다. 예를 들어 위의 스샷에는 "LIMIT 12"가 붙어 있으므로 12개 이상 불러왔을 리가 없는데, 아래 스샷에는 "찾은 행: 433"이라고 나옵니다. 정렬 방식이나 검색 조건에 차이가 있는 게 아닌가 하는 의심이 들 수밖에요.^^

    정렬 방식, 검색 조건, 반환하는 행의 갯수까지 완벽하게 동일한 쿼리인데도 소요시간이 다르다면 웹서버와 DB서버 사이의 네트워크 상태를 의심해 볼 수도 있겠습니다. 예를 들면 국내 통신사 IDC에서 아마존 RDS에 접속한다거나...

  • profile
    무슨 쿼리인지 제대로 안 보이네요.
  • profile ?
    쿼리에 대해서 여쭤본게 아니라 속도가 다를수도 있는지가 핵심 질문인데..제가 질문을 잘 못달았나 봅니다.ㅠㅠ 참고해서 다음부터는 잘쓰도록 할게요 감사합니다 ㅠ
  • profile

    뭐 의심되는거라면 검색 컬럼에 인덱스가 잘 안짜여져있다던지
    인덱스를 타지 않는 검색 조건을 걸고 있다던지..
    조인 조건에서 인덱스를 안탄다던지..

    위에 것들 확인해보시면 될거 같네요

     

    +) 어차피 디버그 페이지에 쿼리를 전부 공개해도 딱히 보안상 문제되는건 없습니다.

    변수같은건 전부 ? 로 나오기도 하고 말이죠

    특히 DB같은경우 쿼리만 볼게 아니라 테이블 상태나 컬럼 설정도 종합적으로 보아야 하는데, 공개가 어려우시다면 돈주고 비공개로 의뢰하시면 빠르게 해결이 가능할것 같네요

  • profile ?
    작게나마 제가 알던 지식 부분과 차이가 나서 여쭤봅니다..

    라이믹스에서 호출하는것과 DB에서 직접호출하는게 속도차이나는것에 대해서 여쭤봤는데.. 다들 쿼리만 보여달라고 하시니.. 보안상 문제는 안되는 부분인데 쿼리는 라이믹스에서 호출하는 부분과 DB에서 직접 호출하는게 완전 같을떄도 다를수 있다는 말씀이신가요?

    사용하는 쿼리가 같은데 호출하는 곳에 따라서 인덱스가 걸리고 안걸릴것이 있는지 궁금합니다 ㅠㅠ
  • ? profile

    "라이믹스에서 호출하는것과 DB에서 직접호출하는게 속도차이나는것에 대해서 여쭤봤는데"
    말씀하신 부분을 본문에서 찾을수가 없습니다..

     

    제가 이해한 글 내용은 다음과 같습니다
    "라이믹스에서 쿼리를 실행하면 1.4초, 3.6초와 같이 쿼리 속도가 느려집니다."
    "그런데 제가 해당 쿼리를 직접 실행해보면 0.0초밖에 나오지 않습니다."
    "이러한 현상을 겪어보신 분들이나 해결할 수 있는 방법이 있을까요?"

     

    오리엔님께서는 문제에 대한 "해결 방법"을 물어보셨습니다.
    그렇기에 저희는 해답을 찾기 위해 어떤 쿼리가 문제인지 봐야겠죠
    그러나 오리엔님께서 문제가 되는 쿼리의 일부를 가려두셨으니, 해당 테이블의 구조를 볼수도, 쿼리를 테스트해볼수도 없죠.

     

    예시를 들어볼께요

     

    KakaoTalk_Photo_2022-11-24-15-17-38.jpeg.jpg
    (3x)^3 + [         ] = 10
    이 식을 푸는 방법을 모르겠습니다

    문제는 숙제를 내주신 선생님에게 들키면 안될거 같으니 일부를 가리고 올리겠습니다

    x의 값은 뭔가요?

     

    질문자님께서는 이 질문에 어떻게 답변을 해주실건가요?

    가린 부분에는 x가 더 있을수도, 없을수도, y가 생길수도, 혹은 아무것도 없을 수도 있죠

    질문자분께서는 이 친구가 왜 답을 구하지 못했는지 원인을 명확하게 판단하실 수 있으신가요?

     

    저희도 동일합니다

    질문자분께서 "라이믹스에서 호출하는것과 DB에서 직접호출하는게 속도차이가 있나요?" 라고 질문해주셨다면 저희는 "아니요, 차이가 없습니다. 다른 부분을 찾아보세요." 라고 답변을 드렸을겁니다.

    그러나 질문자분께서는 "이 문제의 해답"을 질문하셨기 때문에 "저희는 문제를 보지 못하고 답을 구하지 못합니다" 라고 이구동성으로 말하고 있는것지요

    문제를 가리고 해답을 찾을 수 있다면 그건 답변자분이 대단한 마법을 부리고 계시거나 사기를 치고있는 것이겠죠 ㅎㅎ

     

     

    잡설이 길었습니다.

    더 정확히 말하자면 저희는 쿼리 뿐만이 아니라, 어떤 데이터를 쿼리에 집어넣으셨는지도 보아야 합니다.

    다만 이 부분은 보안상 문제가 있을 수도 있고, 대충 쿼리를 보면 어떤 데이터를 넣었을지 알거 같으니 필요할 경우에만 요청을 드리죠

    그러나 쿼리를 가려버리시면 문제가 되는 부분도 예측할 수 없으니 답변을 드리기 어렵습니다

    다음에 질문을 주실때는 가리는 부분 없이 쿼리와 환경, 어떤 작업을 하셨는지와 같이 많은 정보를 주시면 더 좋을것 같습니다.

     

    답글로 질문주신것을 답변해보자면

    디버그패널에 나오는 쿼리에 경우, 라이믹스에서 실제로 실행한 쿼리를 표시해주게 됩니다.

    또한 DB서버와 라이믹스가 돌아가는 서버를 분리하신게 아니라면 실행할때 시간 차이는 0에 가깝습니다.

    그러하니 데이터까지 정확히 "동일한" 쿼리를 실행하신게 맞는지 확인해주실 필요가 있어보이고요

     

    사용하는 쿼리가 같다면 호출 위치와 상관없이 동일한 인덱스를 타게 됩니다.

     

    답변이 되었다면 좋겠습니다 :D

  • profile
    윗분도 지적해 주셨듯이 정보를 죄다 가리고 도와달라고 하셔도 도와드릴수 없습니다.

    https://xetown.com/request
    정보를 드리고 싶지 않다면 제작의뢰로 진행하시는게 맞습니다.
  • profile ?
    답변감사합니다.