Максимальное использование процессора большой стол - PullRequest
1 голос
/ 09 февраля 2020

У меня есть база данных с 1 миллионом пользователей, и я хочу отсортировать их по их баллам. Когда я пытаюсь отсортировать их, даже если я использую индекс, он использует 100% процессора и все зависает на 1 минуту. Нужно ли использовать несколько баз данных для решения этой проблемы?

Я не хочу, чтобы запрос использовал все процессоры в одиночку?

мои правила базы данных.

   "userlist": {
      ".read": true,
      ".indexOn": ["coin", "fcb_coin","name","rateus","guestid","email"],
      "$uid": {
      ".write": "auth.uid==$uid",
      ".read": "true",


      }
    },

my структура базы данных

  userlist: 
     uid:
        name:
        email:
        fcb_coin:
        device_type
        facebookid:
        deviceid:

моя облачная функция Firebase

exports.createmyrankings = functions.https.onRequest((request, response) => {


  var db = admin.database().ref();

  db.child("userlist").orderByChild('fcb_coin').startAt(-999999999999).limitToFirst(50).once('value', (snapshot) => {

let mycount=1;
    snapshot.forEach((userSnap) => {

if(mycount<=50){
  snapshot.ref.parent.child('worldtop').child(mycount).remove();            
      snapshot.ref.parent.child('worldtop').child(mycount).child(userSnap.child('fcb_ids').val()).child('coin').set(userSnap.child('coin').val());  
      snapshot.ref.parent.child('worldtop').child(mycount).child(userSnap.child('fcb_ids').val()).child('name').set(userSnap.child('name').val()); 
          snapshot.ref.parent.child('worldtop').child(mycount).child(userSnap.child('fcb_ids').val()).child('fcb_ids').set(userSnap.child('fcb_ids').val()); 
mycount=mycount+1;
}


    });

  });





 response.send("ranking Is created");
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...