
Estoy pensando en diseñar un sistema que reciba muchos registros.
¿Existe algún límite fijo sobre la cantidad de inserciones que puede realizar en una base de datos por segundo?
Normalmente utilizamos el servidor MS SQL, ¿Oracle es mejor? ¿Es posible obtener un mejor rendimiento en una solución en la nube sin SQL?
Respuesta1
No conozco ningún sistema de base de datos que tenga un límite artificial en el número de operaciones por segundo, y si encontrara uno que lo tuviera, estaríalívido. Su único factor limitante deberían ser las restricciones prácticas impuestas por su sistema operativo y hardware, particularmente el rendimiento del disco.
El resto de su pregunta (qué base de datos es "mejor") está sujeta a su implementación y requisitos. Si simplemente está volcando datos en un depósito, una solución NoSQL comoMongoDBpuede ser apropiado y su desempeño puede ser bastante impresionante. Si sus datos son sistemas RDBMS basados en SQL altamente relacionales son la mejor opción.
Con cualquier RDBMS basado en SQL, debería esperar dedicar algún tiempo a ajustar el sistema para obtener un rendimiento óptimo. Su proveedor de base de datos probablemente tendrá una pequeña montaña de documentación sobre el tema y la diferencia entre un sistema optimizado de forma óptima y uno que acaba de serlo. Lo que se lanza sobre el hardware puede ser dramático.
Respuesta2
Me topé con esta publicación cuando buscaba por qué veo algunos resultados interesantes en algunas de mis propias pruebas de rendimiento.
Hice pruebas en Postgres para ver cómo se podía aumentar el rendimiento agrupando mis inserciones. En lugar de hacer 1 inserción a la vez, inserto varias en una cadena SQL grande y luego ejecuto ese SQL.
Al comenzar las pruebas, sabía que cuanto más me uniera, mejor rendimiento podía esperar, ya que la sobrecarga comienza a minimizarse en comparación con los datos reales. También pensé que el rendimiento comenzaría a disminuir en algún momento debido a la sobrecarga asociada con tener que retransmitir cuando hay un error de un solo bit en una cadena tan larga.
Lo que no esperaba eran mis resultados experimentales. No estoy seguro de cómo explicar este dato, así que quizás si hay alguien que sepa más sobre esto pueda intentar explicarlo.