유저 퍼블릭 테이블을 빠르게 조회할 수 있을까요?

채팅이나 랭킹 유저의 이름을 클릭하면 간단 프로필을 띄워주고 있습니다.

그러나 현재 구현은 퍼블릭 테이블 전체를 닉넴으로 where 로 찾고 있어 부하가 심합니다. (1초이상 걸립니다)

이를 빠르게 찾을 방법이 있을까요?

조건 : 다른 유저의 NickName 만 알고 있다는 상황입니다.

안녕하세요, 개발자님
말씀해주신 상황의 경우 where 절을 이용하시기보다는 owner_inDate를 활용하시는 것이 더욱 효율적입니다.
다른 유저의 NickName만을 알고 있다면 NickName을 통해 inDate를 조회하여 이용하시면 되며,
5월 중 업데이트를 통해 owner_inDate를 이용하는 경우에 대해서는 조금 더 속도가 빨라질 수 있도록 개선할 예정입니다.

아래 개발자 문서를 참고하시어 이용 부탁드리겠습니다.
감사합니다.

죄송합니다만 조금만 더 자세히 여쭤봐도 될까요?

  1. 예제에서는 indate를 사용하는데, 이는 해당 row에 데이터가 들어간 시점의 정보로 알고 있습니다. 어떻게 owner_indate로 테이블의 열을 불러올 수 있을까요? 이 경우 1개의 열만 반환해서 빠른 것인지요?

  2. 유저 정보를 콘솔에서 열어봐도 유저의 owner_indate를 찾을 수는 없습니다. 어디서 볼 수 있을까요?

  1. indate는 유저나 게임 정보, 랭킹, 길드, 우편 등 데이터가 생성될 때 해당 데이터의 Key 값 으로 설정되는 값입니다.
    where 절에 owner_indate를 줬을 때 equal 조건으로 row를 검색할 수 있으며, Key 값을 통해 검색이 이루어지기에 빠른 검색이 검색 가능한 점 참고 부탁드리겠습니다.


  1. 유저의 owner_indate는 GetGamerIndateByNickname 함수를 통해 확인이 가능합니다.
    아래 개발자 문서를 참고 부탁드리겠습니다.

Nick은 Value 이므로 Where 에서 느리고, Gamer_indate는 Key 이므로 Where에서 빠르게 검색 가능하다는 말씀이신거죠?

네 맞습니다,
또한 처음 안내드린 바와 같이 5월 중 업데이트를 통해 owner_inDate를 이용하는 경우에 대해서는 조금 더 속도가 빨라질 수 있도록 개선이 될 예정이니 참고 부탁드립니다. :slight_smile:

감사합니다! 큰 도움이 되었습니다. (꾸벅)

알려주신대로 시도 해 보았으나 속도가 상승하지 않았습니다.

  1. 유저의 닉네임으로 gamer_indate를 찾아서 where 로 검색 => nick 밸류를 이용해서 찾는것과 동일한 시간이 걸림 (약 1초 이상)

  2. 유저의 닉네임으로 gamer_indate를 찾아서 get 으로 바로 찾기 => 실패.

테이블에는 indate와 gamer_indate가 있습니다. 테이블에서 gamer_indate로 데이터를 찾는 것은 기존과 속도 차이가 없는 것 같습니다. indate로 찾으면 빠르게 찾을 수 있겠습니다만, 해당 테이블에서 어떻게 indate를 찾을 수 있을지요?

상황 : 플레이어가 ‘다른’ 유저의 ‘닉네임’ 만을 알고 있는 상태에서, public 테이블의 '공개 정보’를 찾아오는 것입니다. (간단 프로필 띄우기)

3

2

  1. 확인 시 현재로서는 아주 작은 차이만이 있는 것으로 확인됩니다.
    이에 앞서 안내해 드린 바와 같이 5월 업데이트를 통해 속도 개선이 이루어질 예정입니다.
    다소 불편하시겠지만, 업데이트 전까지 양해 이용 부탁드리겠습니다.

  2. 테이블에서 indate를 찾기 위해서는 get을 해야 하므로, 말씀하신 방법으로는 진행이 어려운 것으로 확인됩니다.

앞선 안내에서 보다 상세히 안내드리지 못해 죄송합니다.