Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2012, 09:50
jrsantos
 
Fecha de Ingreso: julio-2012
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 3
como puedo optimizar una tabla con mucho registros

Hola resulta que tengo una tabla con 16M de registros la tabla esta indezada por el campo c_id

la distribucion de datos esta en 4 c_id que son (1,2,3,4)

si realizo una consulta de este tipo

Código SQL:
Ver original
  1. SELECT item1 FROM myTabla WHERE c_id = 4;

El resultado que obtengo es este
500000 rows in set (1.00 sec)

Le hago un EXPLAIN a la consulta para ver como mysql esta operando

Código SQL:
Ver original
  1. mysql> EXPLAIN SELECT item1 FROM myTabla WHERE cp_id = 4;
  2. +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+
  3. | id | select_type | TABLE    | TYPE | possible_keys | KEY   | key_len | REF   | ROWS    | Extra |
  4. +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+
  5. |  1 | SIMPLE      | myTabla  | REF  | INDEX         | INDEX | 2       | const | 1061072 |       |
  6. +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+
Aquí veo que el msyql recorre 1061072 para poder recuperrar los 500.000

Mi pregunta es, esto es normal por la cantidad de registro que tiene la tabla si es normal entonces quesería lo mas ideal dividir la tabla o sea segregar los 500.000 registros de c_id = 4 y colocarlo en otra tabla aparte o ustedes entienden que tengo algun problema en como estoy optimizando mi consulta.

Se aceptan cualquier criticas, cualquier experiencia que hayan tenido cualquier cosas por favor no se cohiban en responder.

Saludos.