Qu’est-ce qu’une “grande firebase database”?

Ok, question idiote je sais mais je vois le commentaire nébuleux “une grande firebase database” aussi bien que petit et moyen et je me demande ce que cela signifie. Quelqu’un peut-il définir ce qu’est une firebase database petite, moyenne et grande pour nous, néophytes SQL?

Il n’y a pas de seuil où une petite firebase database devient moyenne ou une firebase database moyenne devient grande. Généralement, quand j’entends ces termes, je pense à des ordres de grandeur particuliers en termes de total des enregistrements stockés.

  • Small: 10 5 enregistrements ou moins.
  • Medium: 10 5 à 10 7 enregistrements.
  • Large: 10 7 à 10 9 enregistrements.
  • Très grand nombre: 10 9 ou plus.

Comme l’a suggéré poster le dorfier , vous pouvez également y réfléchir en fonction des propriétés de chaque type de firebase database. En le catégorisant de cette façon, je dirais:

  • Petit: la performance n’est pas une préoccupation. Vos requêtes fonctionnent correctement sans faire d’optimisations spéciales. Vous ne voyez qu’une différence de performance marginale lors de l’utilisation d’améliorations de première ligne telles que les index.

  • Moyen: Votre firebase database a probablement un ou plusieurs membres du personnel affectés à temps partiel à sa maintenance et à son entretien. Ces personnes font attention à la santé de la firebase database; Leur principale responsabilité administrative est de prévenir les problèmes de performances inacceptables et de minimiser les temps d’arrêt.

  • Large: un ou plusieurs membres du personnel sont chargés de travailler sur la firebase database et d’améliorer les performances. Ils veillent également à ce que les modifications apscopes aux applications ne provoquent pas de rupture de schéma pendant la durée de vie de la firebase database. Les mésortingques sur la santé et l’état de la firebase database sont étroitement surveillées. Une expertise importante est nécessaire pour comprendre et effectuer des optimisations.

  • Très grand: la firebase database stocke de grandes quantités d’informations qui doivent être facilement accessibles. Des optimisations des performances sont absolument nécessaires pour éliminer chaque once de rapidité de chaque requête, sans laquelle la firebase database serait beaucoup moins utilisable, voire impossible à utiliser. La firebase database peut utiliser des techniques de réplication ou de regroupement sophistiquées ou innovantes, repoussant les limites de la technologie actuelle.

Notez que ceux-ci sont entièrement subjectifs et que quelqu’un peut très bien avoir une autre définition parfaitement légitime du terme “grand”.

Une façon de le comprendre consiste à observer vos requêtes de test.

Une petite firebase database est celle où les index importent peu.

Une firebase database moyenne est une firebase database dont les requêtes prennent plus d’une seconde si vous ne disposez pas d’un index approprié.

Une grande firebase database est une firebase database dans laquelle les requêtes prennent souvent des heures à optimiser, en combinant la conception des requêtes, la modification des index et de nombreux cycles de test.

Meilleure réponse: les grandes bases de données sont celles qui obligent à cesser d’utiliser des bases de données relationnelles.

En d’autres termes, une firebase database relationnelle normalisée où tous les index dans le monde ne peuvent pas vous aider à répondre à vos exigences en termes de temps de réponse en raison des jointures massives.

Si vous avez déjà dû abandonner des bases de données relationnelles pour autre chose, vous êtes soit un développeur de firebase database médiocre, ni un administrateur de firebase database expert, soit vous disposez d’une firebase database très volumineuse.

«Large Database» est en effet un concept nébuleux. Il existe déjà des réponses et des opinions très différentes dans les réponses à cette question. Certaines approches pour définir les «petites», les «moyennes» et les «grandes» bases de données peuvent avoir plus de sens que d’autres.

Certaines définitions ont plus de sens que d’autres car elles se concentrent sur différents aspects importants pour la conception, la programmation, l’utilisation, la maintenance et l’administration d’une firebase database et ces différents aspects sont réellement importants pour une firebase database utilisable. Il se trouve que tous ces aspects sont influencés par le concept nébuleux de «taille de la firebase database».

Donc, cela signifie-t-il que ce n’est pas grave si vous êtes en mesure de définir si une firebase database particulière est grande ou non?

Certainement pas. Ce que cela signifie, c’est que vous appliquerez le concept différemment tout en évaluant les différents aspects de conception, d’exploitation et d’administration de votre firebase database. Cela signifie également que chaque fois que ce concept sera nébuleux.

Par exemple: la stratégie d’index de firebase database (un aspect de la conception de la firebase database) est influencée par le nombre d’enregistrements pour chaque table (une mesure de la taille), par le nombre d’enregistrements (une autre mesure de la taille) et par la requête . Ratio de création / mise à jour / suppression des opérations (aspect de l’utilisation de la firebase database).

Les temps de réponse des requêtes sont meilleurs si les index sont utilisés pour les tables contenant un grand nombre d’enregistrements. Selon la nature de vos clauses WHERE, ORDER BY et d’agrégation d’enregistrement, vous pouvez avoir besoin de plusieurs index pour certaines tables.

Les opérations de création, de mise à jour et de suppression sont affectées négativement par l’augmentation du nombre d’index sur la ou les tables affectées. Plus d’index pour une table affectée signifie plus de changements que le SGBDR doit effectuer, dépensant plus de temps et plus de ressources pour appliquer ces modifications.

De plus, si votre SGBDR passe plus de temps à appliquer ces modifications, les verrous sont également conservés plus longtemps, ce qui influe sur les temps de réponse lorsque d’autres requêtes sont envoyées au système en même temps.

Alors, comment équilibrer la quantité et la conception de vos index? Comment savoir si vous avez besoin d’un index supplémentaire et si, en ajoutant cet index, vous n’imposerez pas un impact négatif important sur les temps de réponse des requêtes? Réponse: Vous testez et profilez votre firebase database par rapport à une charge cible en fonction de vos exigences de charge / performance et parsingz les données de profilage afin de déterminer si d’autres optimisations / nouvelles conceptions / index sont nécessaires.

Différentes stratégies d’index sont requirejses pour différentes requêtes. Ratios de création / mise à jour / suppression Si votre firebase database est très chargée en requêtes mais rarement mise à jour, les performances de l’application globale seront meilleures si vous ajoutez tous les index qui améliorent les temps de réponse des requêtes. D’un autre côté, si votre firebase database est constamment mise à jour mais qu’il n’y a pas d’opérations de requête volumineuses, les performances seront meilleures si vous utilisez moins d’index.

Bien entendu, il existe d’autres aspects: conception de schémas de firebase database, stratégie de stockage, conception de réseau, stratégie de sauvegarde, procédures stockées / déclencheurs / etc. programmation, programmation d’applications (par rapport à la firebase database), etc. Tous ces aspects sont influencés différemment par des concepts distincts de «taille» (taille de l’enregistrement, nombre d’enregistrements, taille de l’index, nombre de schémas, taille de stockage, etc.).

J’aimerais avoir plus de temps car ce sujet est fascinant. J’espère que cette petite consortingbution servira de sharepoint départ pour vous dans ce monde fascinant du SQL.

Vous devez tenir compte de l’avancement du matériel pour cette définition:

  1. Petite firebase database: le jeu de travail s’intègre dans la RAM physique d’un seul serveur de base (environ 16 Go maintenant)

  2. Base de données moyenne: s’insère dans un ou plusieurs disques durs (via RAID) sur une seule machine (jusqu’à plusieurs To)

  3. Base de données volumineuse: les données doivent être réparties sur plusieurs serveurs de base afin de pouvoir s’adapter (jusqu’à plusieurs PB).

Selon un article de Wikipedia sur Very Large Database

Une firebase database très volumineuse, ou VLDB, est une firebase database qui contient un nombre extrêmement élevé de tuples (lignes de firebase database) ou occupe un espace de stockage physique extrêmement important. La définition la plus courante de VLDB est une firebase database qui occupe plus de 1 téraoctet ou contient plusieurs milliards de lignes, bien que cette définition change naturellement avec le temps.

Je pense que quelque chose comme Wikipédia, ou les données de recensement américaines sont une «grande» firebase database. Mes listes d’adresses personnelles ou todos sont une petite firebase database. Une firebase database de taille moyenne est quelque chose entre les deux.

Vous pouvez essayer de définir les tailles en fonction du nombre de serveurs dont vous avez besoin. Une petite firebase database est un composant d’une application que vous exécutez sur votre bureau, une firebase database de taille moyenne serait un serveur mysql unique (quelque part) et une grande firebase database nécessiterait plusieurs serveurs avec un support de réplication / reprise.

Si votre firebase database est suffisamment volumineuse pour que vous ne puissiez pas simplement la “sauvegarder” pour mettre en place une boîte de développement ou de test, vous avez probablement une “grande firebase database”.