Show Menu
Cheatography

Rendimiento y eficiencia de las BBDD Cheat Sheet by

Apuntes sobre eficiencia de las BBDD

Motivación

Las BBDD son la piedra angular de la gestión de datos. Son ofrecidos a otras aplica­ciones para su uso o compar­tición
La capa de gestión de datos
tendremos proces­amiento de datos
la capa de explot­ación
es un conjunto de aplica­ciones que utilizan los datos ofrecidos por la capa de gestión de datos
Las aplica­ciones de explot­ación típica­mente poseen requisitos de calidad relaci­onados con el tiempo
Si un sistema va demasiado lento, buscará otro que requiera menos tiempo.

EFICIENCIA

La eficiencia es el grado en el que el software, tal como una base de datos, emplea óptima­mente los recursos del sistema, según el compor­tam­iento del tiempo y de los recursos
¿Cómo hacemos una BD más eficiente?
MÄS RÁPIDO
más memoria caché o prefetch
 
discos duros más rápidos
 
mejores CPUs
 
cambiar la compresión de los datos
 
escalar la base de datos
MENOS RECURSOS consumidos
Haciendo mejor uso de los métodos de acceso a la BD. Método de acceso es la manera en la que una BD encuentra y devuelve un dato concreto, o un conjunto de datos.
 
Típica­mente utilizan estruc­turas de datos comple­men­tarias

Métodos de acceso a los datos

El método que utilizan las BD para acceder a los datos es el escaneo secuen­cial. Va fila por fila.
Hay métodos de acceso más eficie­ntes: los SGBD normal­mente utilizan índices. Estos índices son metadatos: datos sobre los datos
Tipos de índices: el más común es el B+ (es un árbol). Nos permite acceder a los datos en tiempo de acceso logarí­tmico
CUIDADO: Si creamos un índice que no es útil nos puede empeorar el rendim­iento, tiene un coste.
INDICE COMPUESTO: conseg­uimos encontrar elementos que cumplan dos condic­iones a la vez
CREATE INDEX titlet­ype­_index;
ON title_­basics (title­type);

DROP INDEX titlet­ype­_index;

EL TEOREMA CAP

las RDBMS, dentro del mundo de los DBMS, tienen un grave problema o, mejor dicho, una limitación teóric­o-p­ráctica
Todas las bases de datos tienen un problema, respecto al teorema CAP.
No se puede elegir no tener ningún problema, pero si elegir cuál problema quieres tener.
En el mundo de los RDBMS, típica­mente, ese problema es fijo: No se puede elegir
➢ El teorema CAP describe las limita­ciones de las bases de datos distri­buidas en una red: Un clúster de bases de datos, o cualquier base de datos escalada horizo­nta­lmente.
Es imposible garantizar simult­áne­amente la consis­tencia, la dispon­ibi­lidad y la tolerancia a partic­iones en una base de datos distri­buida.
La consis­tencia se refiere a la propiedad de una base de datos de garantizar que todas las copias de la base de datos en diferentes nodos de la red contengan los mismos datos.
 
La dispon­ibi­lidad se refiere a la propiedad de una base de datos de estar siempre disponible para realizar lecturas y escrit­uras.
 
La tolerancia a partic­iones se refiere a la capacidad de una base de datos para seguir funcio­nando correc­tamente incluso si hay una interr­upción en la comuni­cación entre algunos de los nodos de la red.
Los diseña­dores de bases de datos distri­buidas deben elegir dos de estas propie­dades para garantizar y sacrificar la tercera.
Los sistemas de bases de datos relaci­onales son típica­mente CA, y típica­mente sirven para entidades bancarias. ▪ No son tolerantes a partic­iones.
 

Recupe­ración

Una BD debe guardar los datos de forma persis­tente:
si se corrompe --> poder recupe­rarla
 
si falla --> No perder cambios de transa­cciones confir­madas, ni mantener cambios de transa­cciones abortadas
PELIGROS:
cancel­ación de transa­cciones
 
caida del sistema (cancelar todas las transa­cciones activas)
 
destru­ccion de BD
RECUPE­RACION
restau­racion: ROLLBACK. restau­racion hacia atras; RESTAU­RACION hacia delante. rehacer cambios de transa­ccion confir­mada. EL LOG guarda inform­ación sobre los cambios en la BD
 
recons­tru­cción: se realiza mediante dos fuentes difere­ntes. BACKUP: completo o increm­ental. LOG: a partir del momento que se hizo el backup.
 
De manera externa mediante RAIDs o mediante otra base de datos (distr­ibuida)
ESCALADO
Proceso de aumentar la capacidad de la BD para mayor cantidad de datos o para mas solici­tudes
 
- añadiendo hardware, o distri­buyendo BD
 
objetivo siempre mejorar el rendim­iento de la BD

ESCALADO

Escalado de una BD es el proceso de aumentar la capacidad de la BD para manejar una mayor cantidad de datos o un mayor número de solici­tudes de consulta
- Escalada vertical: se refiere a la adición de más recursos de HW a una sola máquina para mejorar el rendim­iento de la BD. TIENE UN LIMITE. Es bastante simple, no hay que cambiar nada.
- Escalado horizo­ntal: distri­bución de la BD en varias máquinas para mejorar el rendim­iento o la tolerancia a fallos de la BD. Es más complejo, pues implica que varias máquinas tienen que comuni­carse entre sí de manera continua, distribuir las tareas y datos entre ellas, etc. VER REPLIC­ACIÖN y PARTIC­ION­AMI­ENTO.
- Escalado diagonal: mezclar el horizontal y el vertical
REPLIC­ACION: consiste en crear copias de la BD en varias máquinas para distribuir la carga de trabajo entre varias máquinas y mejorar el rendim­iento.
PARTIC­ION­AMI­ENTO: dividir grandes tablas en fragmentos más pequeños y distri­buirlos en varias máquinas. Esto mejora el rendim­iento y capacidad de manejo de los datos. Requiere un SHARD KEY
           
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          More Cheat Sheets by asourv

          Bases de datos relacionales Cheat Sheet