유저 랜덤 조회

테이블을 이용해서 유저 랜덤 조회하는 부분 문의드립니다.

랜덤 조회 시 필요한 데이터가 tablename, column, value, gap, limit 인데,
여기서 column은 숫자형 데이터만 가진 컬럼이라고 되어있는데,
column과 value, gap을 사용하지 않으면 해당 기능 사용이 불가한지에 대해서 문의 드립니다.
이 기능을 사용하려면 숫자형데이터만 가진 컬럼을 새로 추가해서 사용해야 하나요?

public void GetRandomUsers(Action<List<DB_System>> callback)
{
    PopUpManager.Instance.loadingObject.StartLoading();
    var dataList = new List<DB_System>();
    var mylevel = DataManager.Instance.SystemData.userLevel;
    Backend.Social.GetRandomUserInfo("System", "level", mylevel, 100, 20, bro=>
    {
        var datas = bro.Rows();
        for(int i=0; i<datas.Count; ++i)
        {
            var db = JsonUtility.FromJson<DB_System>(datas[i]["table"]["system"].ToString());
            db.privateIndate = datas[i]["table"]["owner_inDate"].ToString();
            dataList.Add(db);
            if (removeCompleteData(db) == null)
                dataList.Remove(db);
        }
        callback?.Invoke(dataList);
    });

}

현재 이런 식으로 사용하는 중인데, 속도가 기존보다 느린 것 같아서 문의드립니다.
로직을 이런식으로 작성하는게 맞는지와 데이터를 어떤 방식으로 찾는지 문의 드립니다.

안녕하세요 개발자님.

랜덤으로 유저정보 찾기 기능은 두가지로 검색할 수 있습니다.

  • 모든 유저정보중에서 랜덤으로 검색
  • 특정 테이블의 특정 컬럼, 특정 값에 맞는 유저중에 랜덤으로 검색

모든 유저정보중에서 랜덤으로 검색

Backend.Social.GetRandomUserInfo(10); // 1~100까지

특정 테이블의 특정 컬럼, 특정 값에 맞는 유저중에 랜덤으로 검색
인자값중 value는 기준이 되는 값이며 gap은 value 기준으로 최대값입니다.
value가 100, gap이 10일 경우 90 ~ 110의 데이터를 가지고 있는 유저중에서 랜덤으로 조회합니다.

특정 테이블 : System
특정 컬럼 : level
특정 값 : mylevel 값을 기준으로 100이상, 100 이하의 값을 가지고 있는 유저

Backend.Social.GetRandomUserInfo("System", "level", mylevel, 100, 20);

랜덤으로 아무 유저나 원한다면 limit 값만으로 모든 유저중에서 검색이 가능하고,
자신의 level과 비슷한 유저끼리 랜덤으로 찾고 싶다면 후자를 이용하면 됩니다.

100명 기준 두 함수 모두 약 1~2초 정도의 응답속도가 측정되며, 말씀하신 로직처럼 사용하시면 될 것 같습니다.