Ok, pregunta tonta, lo sé, pero veo el comentario nebuloso 'una base de datos grande', así como pequeña y mediana, y me pregunto qué significa eso. ¿Alguien puede definir qué es una base de datos pequeña, mediana y grande para nosotros los neófitos de SQL?
80
Respuestas:
No existe un umbral en el que una base de datos pequeña se convierta en mediana o una base de datos mediana se vuelva grande. Generalmente, cuando escucho estos términos, pienso en órdenes de magnitud particulares en términos de registros totales que se almacenan.
Como sugirió poster dkretz , también podría pensar en términos de las propiedades que tiene cada tipo de base de datos. Categorizándolo de esta manera, diría:
Pequeño: el rendimiento no es un problema. Sus consultas funcionan bien sin realizar optimizaciones especiales. Solo ve una diferencia marginal en el rendimiento cuando usa mejoras de primera línea como índices.
Medio: Su base de datos probablemente tenga uno o más empleados asignados a tiempo parcial para su mantenimiento y cuidado. Estas personas prestan atención a la salud de la base de datos; su principal responsabilidad administrativa es prevenir problemas de rendimiento inaceptables y minimizar el tiempo de inactividad.
Grande: probablemente tenga miembros de personal dedicados cuyo trabajo sea trabajar en la base de datos y mejorar el rendimiento, así como asegurarse de que los cambios en la aplicación no causen roturas del esquema durante la vida útil de la base de datos. Las métricas sobre la salud y el estado de la base de datos se controlan de cerca. Se requiere una experiencia significativa para comprender y realizar optimizaciones.
Muy grande: la base de datos almacena una gran cantidad de información que debe ser fácilmente accesible. Las optimizaciones de rendimiento son absolutamente necesarias para extraer hasta la última gota de velocidad de cada consulta, y sin ella, la base de datos sería mucho menos utilizable o incluso imposible de usar. La base de datos puede estar utilizando técnicas de agrupación o replicación sofisticadas o innovadoras, ampliando los límites de la tecnología actual.
Tenga en cuenta que estos son completamente subjetivos y que alguien puede muy bien tener una definición alternativa perfectamente legítima de "grande".
fuente
Una forma de calcularlo es observando sus consultas de prueba.
Una base de datos pequeña es aquella en la que los índices no importan.
Una base de datos mediana es aquella en la que las consultas tardan más de un segundo si no se cuenta con un índice adecuado.
Una base de datos grande es aquella en la que las consultas suelen tardar horas en optimizarse, utilizando una combinación de diseño de consultas, modificación de índices y muchos ciclos de prueba.
fuente
Las bases de datos grandes son las que te obligan a dejar de usar bases de datos relacionales.
En otras palabras, una base de datos relacional normalizada donde todos los índices del mundo no pueden ayudarlo a cumplir con sus requisitos de tiempo de respuesta debido a los JOIN masivos.
Si alguna vez ha tenido que abandonar las bases de datos relacionales por otra cosa, o es un desarrollador de base de datos deficiente, no tiene un DBA experto o tiene una base de datos muy grande.
fuente
"Gran base de datos" es un concepto nebuloso. Ya hay respuestas y opiniones muy diferentes publicadas en las respuestas a esta pregunta. Algunos enfoques para definir bases de datos “pequeñas”, “medianas” y “grandes” pueden tener más sentido que otros, PERO ENTONCES, en algún momento, considero que cada definición es correcta, verdadera y válida.
Algunas definiciones tienen más sentido que otras porque se enfocan en diferentes aspectos de importancia para el diseño, programación, uso, mantenimiento y administración de una Base de Datos y estos diferentes aspectos son los que realmente importan para una Base de Datos utilizable. Simplemente sucede que todos estos aspectos se ven afectados por el nebuloso concepto de "tamaño de la base de datos".
Entonces, ¿esto significa que no importa si puede definir si una base de datos en particular es grande o no?
Ciertamente no. Lo que significa es que aplicará el concepto de manera diferente mientras evalúa diferentes aspectos de diseño / operativos / administrativos de su base de datos. También significa que cada vez este concepto será nebuloso.
Por ejemplo: la estrategia del índice de la base de datos (un aspecto del diseño de la base de datos) se ve afectada por el recuento de registros de cada tabla (una medida del "tamaño"), por el tamaño del registro multiplicado por el recuento de registros (otra medida del "tamaño") y por las consultas vs. . Proporción de operaciones de creación / actualización / eliminación (un aspecto del uso de la base de datos).
Los tiempos de respuesta a las consultas son mejores si se utilizan índices para tablas con una gran cantidad de registros. Dependiendo de la naturaleza de sus cláusulas WHERE, ORDER BY y de agregación de registros, es posible que necesite varios índices para ciertas tablas.
Las operaciones de creación, actualización y eliminación se ven afectadas negativamente por el aumento del número de índices en las tablas afectadas. Más índices para una tabla afectada significan más cambios que el RDBMS debe realizar, gastando más tiempo y más recursos para aplicar esos cambios.
Además, si su RDBMS dedica más tiempo a aplicar esos cambios, los bloqueos también se mantienen durante más tiempo, lo que afecta los tiempos de respuesta y otras consultas que se envían al sistema al mismo tiempo.
Entonces, ¿cómo equilibra la cantidad y el diseño de sus índices? ¿Cómo saber si necesita un índice adicional y si al agregar ese índice no estará introduciendo un gran impacto negativo en los tiempos de respuesta de las consultas? Respuesta: Prueba y perfila su base de datos contra una carga objetivo según sus requisitos de carga / rendimiento y analiza los datos de perfilado para descubrir si se necesitan más optimizaciones / rediseños / índices.
Se requieren diferentes estrategias de índice para diferentes consultas vs. Ratios de operaciones de creación / actualización / eliminación. Si su base de datos tiene una gran cantidad de consultas pero rara vez se actualiza, el rendimiento de la aplicación en general será mejor si agrega todos los índices que mejoran los tiempos de respuesta de las consultas. Por otro lado, si su base de datos se actualiza constantemente pero no hay grandes operaciones de consulta, entonces el rendimiento será mejor si usa menos índices.
Por supuesto, hay otros aspectos: diseño de esquema de base de datos, estrategia de almacenamiento, diseño de red, estrategia de copia de seguridad, procedimientos almacenados / activadores / etc. programación, programación de aplicaciones (contra la base de datos), etc. Todos estos aspectos se ven afectados de manera diferente por distintos conceptos de “tamaño” (tamaño de registro, recuento de registros, tamaño de índice, recuento de índice, diseño de esquema, tamaño de almacenamiento, etc.).
Me gustaría tener más tiempo ya que este tema es fascinante. Espero que esta pequeña contribución le sirva de punto de partida en este fascinante mundo de SQL.
fuente
Debe tener en cuenta el avance del hardware para esta definición:
Base de datos pequeña: el conjunto de trabajo se adapta a la RAM física de un solo servidor básico (aproximadamente 16 GB ahora)
Base de datos mediana: cabe en uno o varios discos duros básicos (a través de RAID) en una sola máquina (hasta varios TB ahora)
Gran base de datos: los datos deben distribuirse en varios servidores de productos básicos para que quepan (hasta varios PB ahora).
fuente
Según el artículo de wikipedia sobre Very Large Database
fuente
Si tiene una base de datos que es lo suficientemente grande como para que no pueda simplemente "hacer una copia de seguridad" para ponerla en una caja de desarrollo o prueba, es probable que tenga una "base de datos grande".
fuente
Creo que algo como wikipedia o los datos del censo de EE. UU. Es una base de datos "grande". Mis listas de direcciones personales o todos es una pequeña base de datos. Una base de datos de tamaño medio es algo intermedio.
Puede intentar definir los tamaños según la cantidad de servidores que necesite. Una base de datos pequeña es un componente de una aplicación que ejecuta en su escritorio, una base de datos de tamaño mediano sería un único servidor mysql (lo que sea) en algún lugar, y una base de datos grande requerirá varios servidores con algún tipo de soporte de replicación / conmutación por error.
fuente