База данных Firebase ускоряет простое чтение - PullRequest
0 голосов
/ 19 ноября 2018

Я выполнял профилирование в своей базе данных Firebase и обнаружил одну единственную аномалию

Read Speed
┌───────────────────────────────┬───────┬─────────────┬───────────────────┐
│ Path                          │ Count │ Average     │ Permission Denied │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤
│ /safeList                     │ 4     │ 3,092.50 ms │ 0                 │
├───────────────────────────────┼───────┼─────────────┼───────────────────┤

Это означает, что каждый запрос к этой структуре занимал более 3 секунд. Это не самая страшная проблема в мире, но все же странная.

safelist - это список строк, упорядоченных по длине вручную, а затем импортированных в firebase. Список содержит около 8000 строк длиной от 5 до 25.

Эти запросы были сделаны мной, и каждый из них запросил только первые 5000 образцов из набора.

Мой вопрос:

  • Есть ли способ улучшить производительность чтения?
  • Если бы я просто запросил весь набор вместо первых 5000, это было бы быстрее?
  • Какие-нибудь предложения для больших наборов примитивов?

========== UPDATE ============

Некоторые люди спрашивают о данных и коде.

единственный код, где я вызываю этот запрос: firebase.child("safeList").limitToFirst(5000).addListenerForSingleValueEvent(new ValueEventListener() { //do stuff

я не положил, потому что довольно тупой и как сказано в описании:
Safelist - это список строк, содержащий около 8000 элементов, заказанных вручную по длине

правила базы данных, связанные с ним:

"safeList":{
         ".read":"root.child('premiums').child(auth.uid).exists()",
           ".write":false,
             ".indexOn" : ".value"
      },

В среднем требуется 3000 мс, когда второй самый медленный запрос занимает всего 60 мс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...