Ver Mensaje Individual
  #11 (permalink)  
Antiguo 09/01/2008, 15:22
Avatar de pragone
pragone
 
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 17 años, 2 meses
Puntos: 2
Re: como contar el numero de registros mensual a una base de datos + php?

Perdona, gnzsoloyo, pero eso no es correcto.

El uso de un operador OR sí tiene ese efecto, pero el uso de <= o >= no tiene que ver. Fíjate... un ejemplo:
create table pruebaindice (valor int not null, nombre varchar(50) not null, key idx_valor(valor));

la llenas con cuanta data quieras:
insert into pruebaindice (valor,nombre) select round(rand()*100), concat("nombre", round(rand()*100));
o luego de que ya tienes algunos datos haces este otro para llenarlo más rápido:
insert into pruebaindice (valor,nombre) select round(rand()*100), concat("nombre", round(rand()*100)) from pruebaindice;

En fin... lo llené con
Código HTML:
mysql> select count(*) from pruebaindice;
+----------+
| count(*) |
+----------+
|    31744 |
+----------+
y mira:

Código HTML:
mysql> explain select * from pruebaindice where valor>=20 and valor<40;
+----+-------------+--------------+-------+---------------+-----------+---------+------+------+-------------+
| id | select_type | table        | type  | possible_keys | key       | key_len | ref  | rows | Extra       |
+----+-------------+--------------+-------+---------------+-----------+---------+------+------+-------------+
|  1 | SIMPLE      | pruebaindice | range | idx_valor     | idx_valor | 4       | NULL | 5353 | Using where |
+----+-------------+--------------+-------+---------------+-----------+---------+------+------+-------------+
1 row in set (0.00 sec)
Como puedes ver, MySQL sí ha utilizado un índice para la ejecución del query.