Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

pregunta rendimiento

Estas en el tema de pregunta rendimiento en el foro de Bases de Datos General en Foros del Web. Hola buenas noches, Tenia una consulta y queria ver si algun guru de los foros me ilumina, la cuestion es que voy a realizar unas ...
  #1 (permalink)  
Antiguo 16/08/2010, 15:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
pregunta rendimiento

Hola buenas noches,

Tenia una consulta y queria ver si algun guru de los foros me ilumina, la cuestion es que voy a realizar unas bases de datos con mysql y la base de datos contendra datos de empresa tipicos (facturacion, empleados, etc..., el acceso sera para varios clientes unos 60-100, la pregunta que me surge es la siguiente:

¿que tiene mejor rendimiento una base de datos por cliente con las mismas tablas cada uno pero que desde php se seleccione desde cual va a consultar?

¿o por el contrario es mejor una sola base de datos y diferenciar los datos de los cleintes por medio de una tabla y su correspondiente where (ejemplo tabla idempresa) ?

Un saludo y gracias.
  #2 (permalink)  
Antiguo 17/08/2010, 14:50
Avatar de chicho_  
Fecha de Ingreso: julio-2010
Mensajes: 44
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: pregunta rendimiento

Te recomiendo que uses una misma base de datos y luego filtres por idEmpresa. Piensa sino luego en lo inmantenible que se puede volver el sistema cuando tengas 60 bases de datos y quieras modificar algo de ellas... Además, no debería porqué ralentizar demasiado el sistema si está bien montado. Además, si se diera el caso también puedes hacer balanceos de carga y cosas así para mejorar el rendimiento, aunque la verdad que no creo que lo necesites.
  #3 (permalink)  
Antiguo 17/08/2010, 17:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: pregunta rendimiento

Gracias por responder,

La verdad que en el inmantenimiento de una cosa asi ya habia pensado, se que sera muy complicado y emperara a medida que se agregen mas usarios (mas bd).

Realizare una sola base de datos pues....

Gracias.
  #4 (permalink)  
Antiguo 17/08/2010, 17:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 14
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: pregunta rendimiento

creo que ya entendí tu preocupación, en cuanto a las búsquedas... cuando ya tengas muchos datos...

lo correcto es que tengas una sola base de datos y cuando ya tienes millones de registros en una tabla, hay una cosa que se llama particionamiento de tablas...

El objetivo de particionar tablas es que se almacenen datos de una fecha en una partición, en otra partición datos de otra fecha etc... de manera que cuando busques datos va a la partición correspondiente para no hacer un full table scan.

si particionas por meses y voy a buscar algo de enero, el motor de la base de datos no tiene porque estar buscando tus datos en la particion de abril.

Oracle y DB2 lo soportan en las versiones Enterprise, en PostgreSQL le llaman tablas heredadas... en MySQL es algo así como esto

CREATE TABLE part_tab(
c1 int default NULL,
c2 varchar(30) default NULL,
c3 date default NULL
) engine=myisam

PARTITION BY RANGE (year(c3)) (PARTITION p0 VALUES LESS THAN (1995),
PARTITION p1 VALUES LESS THAN (1996) , PARTITION p2 VALUES LESS THAN (1997) ,
PARTITION p3 VALUES LESS THAN (1998) , PARTITION p4 VALUES LESS THAN (1999) ,
PARTITION p5 VALUES LESS THAN (2000) , PARTITION p6 VALUES LESS THAN (2001) ,
PARTITION p7 VALUES LESS THAN (2002) , PARTITION p8 VALUES LESS THAN (2003) ,
PARTITION p9 VALUES LESS THAN (2004) , PARTITION p10 VALUES LESS THAN (2010),
PARTITION p11 VALUES LESS THAN MAXVALUE );

espero que te de una idea.

pero trata de tener solo una base de datos.

Saludos.

Etiquetas: rendimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:09.