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
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:
Aquí veo que el msyql recorre 1061072 para poder recuperrar los 500.000 Ver original
mysql> EXPLAIN SELECT item1 FROM myTabla WHERE cp_id = 4; +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+ | id | select_type | TABLE | TYPE | possible_keys | KEY | key_len | REF | ROWS | Extra | +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+ | 1 | SIMPLE | myTabla | REF | INDEX | INDEX | 2 | const | 1061072 | | +----+-------------+----------+------+---------------+-------+---------+-------+---------+-------+
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.