Question du test Architecture Infrastructure

Laquelle des deux requêtes SQL suivantes est plus rapide ? A : SELECT * FROM table WHERE id = 1; B : SELECT * FROM table WHERE id = 1 ORDER BY id;

Intermédiaire

MEME SUJET POUR PLUSIEURS QUESTIONS

Vous disposez d'une base de données en documents lourds (1 document/row contient 1Mo de données). Vous remarquez que le goulot d’étranglement de votre base de données n'est pas le nombre de requêtes de lecture/écriture mais la quantité de données transitant pour chacune des requêtes (1Mo).

Votre base de données permet d'effectuer des opérations atomiques sur plusieurs tables/collections.

L'écriture de documents/rows se fait en 1 write. La lecture quant à elle est partielle (les utilisateurs n'ont besoin que de sous ensembles des informations des documents/rows en même temps). Vous identifiez 3 sous ensembles, de taille respectives 0.2Mo 0.6Mo 0.5Mo. Le ratio lecture / écriture étant de 5, vous décidez de différentier les canaux utilisés à l'écriture de ceux de lecture pour profiter du fait que les lectures font moins transiter de données.

L'idée A est la redondance physique. Vous attachez une base de données esclave à votre base de données actuelle. Cette dernière recevra les opérations d'écriture, qui seront répliquées sur la base esclave. Les opérations de lecture seront dirigées directement sur les tables esclaves.

L'idée B est de conserver des tables pour chacun des sous ensembles (en plus de la table principale). Ces tables sont donc des caches persistants, en base de données. 1 opération d'écriture écrit donc le document/row principal + 1 petit document/row prêt à l'emploi pour chacune des opérations de lecture (3).

L'idée C est d'écrire des requêtes SQL/mapReduce sur mesure pour chacune des opérations de lecture afin de ne retourner que les sous ensembles nécessaires à chacune des lectures. Votre base de donnée n'est donc pas modifiée et vous disposez de trois interfaces sur mesures pour chacun des sous ensembles.

EN TERMES DE RAPIDITE DE LECTURE :

Auteur: Kevin LefevreStatut : PubliéeQuestion passée 197 fois
Modifier
0
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !