Backend.GameData.Get 사용 시 응답 시간 문의

안녕하세요, 담당자님!
뒤끝 서비스 너무 잘 사용하고 있습니다.

다름이 아니라 저희가 PvP 기록을 하고 유저에게 보여주고 있는데요!
그 정보를 불러올 때 아래와 같이 사용합니다.

var historyWhere = new Where();
historyWhere.GreaterOrEqual(“createdAtMilliSec”, millSec);
historyWhere.Contains(“searchKey”, Backend.UserInDate);
Backend.GameData.Get(테이블 이름, historyWhere, 50); (비동기 처리)

근데… 이제 이렇게 검색을 거의 30초가 넘게 걸리더라구요.
이래 저래 보니까 String 컬럼을 검색하려고 하면 이렇게 되는 것 같습니다.
혹시 이 부분이 문제가 있는건지 혹은 정상인데 제가 잘못 사용하고 있는건지에 대해 문의 드려도 될까요?

안녕하세요 개발자님,
inDate가 아닌 where절을 통한 데이터 조회 시,
조건에 해당하는 유저 데이터 검색을 위해 오랜 시간이 소요되고, DB요금도 그만큼 많이 발생하게 됩니다.

랜덤 조회 기능을 통해 빠르게 유저 리스트를 뽑아오고,
트랜잭션을 통해 owner_inDate 검색해서 데이터 불러오는 방식을 활용할 수 있습니다.
단, 랜덤 조회 조건은 하나로만 설정이 가능하기에 createdAtMilliSec 를 숫자형 데이터로 바꾸어 기준으로 사용하실 수 있을 것으로 예상됩니다.

답변해 주셔서 감사합니다.
다만 지금 제가 필요한 기능은 랜덤 조회가 아닌,
이전에 내가 PvP를 수행한 기록을 불러오는 기능이라서 말씀해주신 방향과는 맞지 않는 듯 합니다.

추가로 말씀드리면 모든 where절이 느린게 아닌 string 데이터 검색 시에만 느립니다.
또한 위 해당 테이블은 퍼블릭이고 내가 상대를 공격, 상대가 나를 공격한 기록이 저장됩니다.
원래 의도는 searchKey라는 컬럼에 내 inDate, 상대 inDate를 저장하여 그 값으로 내가 한 공격과 받은 공격을 모두 불러오려 했습니다. 다만… 이렇게 되면 where절 사용이 실제로 불가능한거나 마찬가지로 생각이 되네요 ㅠ.ㅠ
개발 문서에… string 컬럼은 where절 사용 시 매우 오래 걸려 실제로 사용 하지 않아야 한다는 내용이 있으면 좋을 것 같습니다.

owner_inDate를 제외한 데이터의 where절 검색은 일치하는 데이터를 찾는 과정에서 오랜 시간이 소요되게 됩니다.
말씀해주신 내용은 담당부서로 전달하여 개발자문서 내 조금 더 정확한 안내가 이루어질 수 있도록 수정 반영 하겠습니다.
도움드리지 못해 죄송합니다.

신경써 주셔서 감사합니다! 답변 기다리고 있겠습니다.
그럼 오늘도 좋은 하루 되세요 :D

좋아요 1