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

FoxPro Supera MySql???

Estas en el tema de FoxPro Supera MySql??? en el foro de Mysql en Foros del Web. Hola, acabo de terminar de migrar una tabla que contiene 12.934.614 registros, estaba en foxpro y al buscar un registro tardaba menos de un segundo ...
  #1 (permalink)  
Antiguo 19/12/2007, 13:41
 
Fecha de Ingreso: julio-2007
Mensajes: 8
Antigüedad: 16 años, 9 meses
Puntos: 0
Desacuerdo FoxPro Supera MySql???

Hola, acabo de terminar de migrar una tabla que contiene 12.934.614 registros, estaba en foxpro y al buscar un registro tardaba menos de un segundo en mostrar el resultado, ahora que la migre a mysql tarda mucho al realizar una busqueda de un registro exacto a que se debe esto?


Bueno ya intente conectarme desde asp y lento, php y todavia lento...

Que me recomiendan?
  #2 (permalink)  
Antiguo 19/12/2007, 15:47
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: FoxPro Supera MySql???

Haz hecho una optimización de índices?

Si no tienes los índices apropiados las queries serán muy lentas, especialmente con 12MM de registros pues tiene que recorrer toda la tabla.
  #3 (permalink)  
Antiguo 19/12/2007, 16:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: FoxPro Supera MySql???

Ni por error lo puede superar.
El Fox es apenas un manejador de tablas avanzado, que puede compararse con Access, pero no con MySQL.

El problema que estás enfrentando tiene que ver con:
- Modelo de la base de datos.
- Diseño de tablas.
- Normalización de tablas (¿1FN, 2FN, 3FN, FNBC o 4FN? Al menos 3FN).
- Diseño de índices.
- Diseño de consultas.
- Optimización de consultas.
- Optimización de server, incluyendo versiones usadas.
- Optimización de red y hardware.

La cosa no es solamente cuán rápido las procesa, sino por qué.
Por ejemplo:Yo tengo una base en desarrollo que en una consulta tiene que hacer un reporte global de servicios realizados por unidades móviles y conductores. Se trata de aproximadamente 25.000.000 de registros acumulados durante 6 meses, 450 conductores y 300 vehículos,varios miles de instancias de inicio y fin de conducción por chofer, infracciones cometidas, posicionamiento de GPS y un montón de cosas más.
Ese conjunto de datos requiere de una aplicación diseñada en Clarion alrededor de 2:45 horas de proceso.
A MySQL le llevó 52 segundos, y cuando cambíe un índice, le llevó 18 segundos, incluyendo el almacenamiento a disco de todo el reporte.

Además, no tengo límite de hardware para el tamaño de los archivos (ver capacidades de MySQL,si no me crees).
  #4 (permalink)  
Antiguo 20/12/2007, 09:05
 
Fecha de Ingreso: julio-2007
Mensajes: 8
Antigüedad: 16 años, 9 meses
Puntos: 0
Desacuerdo Re: FoxPro Supera MySql???

Bueno amigo de verdad me gustaria resolver ese problema, la tabla donde se encuentra es es asi:

Código PHP:
Field      Type       Collation          Null    Key     Default  Extra           Privileges                       Comment
---------  ---------  -----------------  ------  ------  -------  --------------  -------------------------------  -------
row_id     int(11)    (NULL)             NO      PRI     (NULL)   auto_increment  select,insert,update,references         
cedula     int
(11)    (NULL)             YES             (NULL)                   select,insert,update,references         
nombre     char
(40)   latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
direccion  char
(150)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references         
fecha_nac  date       
(NULL)             YES             (NULL)                   select,insert,update,references         
telefono   char
(12)   latin1_swedish_ci  YES             (NULL)                   select,insert,update,references 
Y en la base de datos aparece:

Código PHP:
/*Database Information For - rep*/
----------------------------------

Name    Engine  Version  Row_format      Rows  Avg_row_length  Data_length    Max_data_length  Index_length  Data_free  Auto_increment  Create_time          Update_time          Check_time  Collation          Checksum  Create_options  Comment
------  ------  -------  ----------  --------  --------------  -----------  -----------------  ------------  ---------  --------------  -------------------  -------------------  ----------  -----------------  --------  --------------  -------
repdbf  MyISAM       10  Fixed       12394109             214   2652339326  60235645016080383     127192064          0        12394110  2007-12-19 12:53:22  2007-12-19 17:21:31  (NULL)      latin1_swedish_ci    (NULL)                         
:-) 
  #5 (permalink)  
Antiguo 20/12/2007, 17:14
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: FoxPro Supera MySql???

Supongo que tu búsqueda principal para identificar un registro será por "cédula" y que además debe ser único, por lo que te recomendaría que de seguro quieres tener un índice sobre ese campo (probablemente UNIQUE).

Eso reducirá el tiempo de ejecución de tus consultas que sean para obtener una persona por cédula a... muy poco. Pruébalo. Para más info ve a:
http://dev.mysql.com/doc/refman/5.0/es/create-index.html
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 02:46.