Будет ли какое-либо влияние на производительность, если я заменим уникальный ключ firebase на несколько пользовательских? - PullRequest
0 голосов
/ 24 апреля 2020

Для базы данных реального времени firebase каждый раз, когда я звоню push(), чтобы добавить что-либо, генерируется уникальный ключ 28-ди git.

Мой вариант использования - сохранение данных блога в базе данных. Объект блога имеет поля заголовка, содержания, автора. Например, ниже

Blog {
  title: "",
  content: "",
  author: ""
}

Когда я push(blog) в Firebase, скажу, что он сгенерирует уникальный ключ, например, PxbEfWQhGP3NTU6HfHuVZfAV4017jcuzSpTnHvhLNXbo. Я могу использовать его для создания URL-адреса mywebsite.com/blog/PxbEfWQhGP3NTU6HfHuVZfAV4017jcuzSpTnHvhLNXbo для доступа к странице блога. BlogId можно прочитать по URL-адресу и использовать его для чтения содержимого блога из базы данных. Но несколько причин, почему мне не нравится этот UR, он не оптимизирован для SEO и читателей.

Я думаю заменить уникальный ключ названием блога, это будет похоже на mywebsite.com/blog/this-is-my-first-blog-1ad92b25dd. В конце я добавлю некоторую случайную строку, чтобы меньше шансов на конфликт.

Для этого мне нужно место для хранения заголовка для отображения blogId. Примерно так:

titleToId
  "this-is-my-first-blog-1ad92b25dd"
    blogId: "PxbEfWQhGP3NTU6HfHuVZfAV4017jcuzSpTnHvhLNXbo"
  "yeah-i-did-it-1ad9321ef"
    blogId: "is37nLeQg1dslZPMLpdARyxIMzh2Lj6cRUNkq00i3JB8"
  "not-sure-if-it-works-1ad92523414"
    blogId: "B2kcEwTI02wFJXjBWiDZlDFIzJ502xcAY4qQLyPExzViw"
...

Поэтому, когда я пытаюсь открыть блог, я получаю заголовок из URL, затем я читаю базу данных titleToId, чтобы получить фактический blogId, затем я использую blogId для чтения содержимого блога.

Но у меня есть некоторые опасения по поводу производительности. Как мы заменим уникальный ключ с названием блога. Как только набор данных в titleToId увеличится, скажем, у нас есть 100 миллионов записей. Будет ли производительность чтения базы данных снижаться слишком сильно? В моем случае, можно ли настроить какой-либо индекс для ускорения чтения?

1 Ответ

1 голос
/ 24 апреля 2020

Там не будет никакого влияния на производительность. Не имеет большого значения, что вы используете для уникальной строки идентификатора, если она уникальна и имеет длину менее 768 байт. Нет необходимости создавать какие-либо индексы для имен заметок базы данных.

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