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

indices y mysql

Estas en el tema de indices y mysql en el foro de Bases de Datos General en Foros del Web. Hola a Todos, alguna vez he pedido consejo sobre como optimizar y agilizar las consultas a la base de datos, os pongo al correinte, imaginemos ...
  #1 (permalink)  
Antiguo 07/10/2004, 20:18
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
indices y mysql

Hola a Todos, alguna vez he pedido consejo sobre como optimizar y agilizar las consultas a la base de datos, os pongo al correinte, imaginemos esta tabla:

Id_img | nom | url | por | dia | hora | hits | vot | media | total

Imaginemos 50000 registros.

*Cuando llamo a la base de datos, cuando listo las imagenes por letra, de 30 en 30.

select id_img, nom, por from ............

(lo suyo seria crear un indice triple, no?¿ id_img,nom,por)
muestro nom y por pero el Id es necesario para enviarlo

* Cuando hago una busqueda, solo me interesa el id y el nom

lo suyo seria crear un indice doble id_img,nom

seria correcto eso del indice doble y el indice triple para agilizarlo todo?¿
utilizo el EXPLAIN para ver donde busca y el resultado que obtengo es Index, seria mejor INDEX que RANGE, verdad?

Bueno, muchas gracias nuevamente.

Saludoss
  #2 (permalink)  
Antiguo 12/10/2004, 10:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
He modificado alguna cosa, ahora la tabla la tengo asi:
Código PHP:
Campo   |Tipo         |Atributos|Nulo|Predeterminado
-------------------------------------------------------
id_img  |int(6)       |         |    |auto_increment
-------------------------------------------------------
nombre  |varchar(75)  |         | No |
-------------------------------------------------------
ruta    |varchar(100) |         | No |
-------------------------------------------------------
kbs     |float(7,2)   |         | No |0.00
-------------------------------------------------------
quien   |varchar(20)  |         | No |
-------------------------------------------------------
fecha   |varchar(8)   |         | No |
-------------------------------------------------------
hits    |smallint(5)  | UNSIGNEDNo |
id_img ----> un numero que nunca va a llegar a ser 100000
nombre ---> Un texto, ejemplo: El Domingo De Semana Santa - Por La noche
ruta ------> Donde esta guardada, ejemplo: imagenes/a/nombre_img.jpg
kb --------> El Peso de la imagen, como mucho seria 9999.99
quien -----> Es el nombre de quien hizo la foto, ejemplo: VerderoL
fecha -----> El dia que hizo, estaria guardada asi: 29-06-04
hits ------> Las veces que ha visto esa imagen, como mucho 99999 veces

Primero: Deberia cambiar el Tipo de algun campo ?¿

Segundo: tema de indices.

hago las siguientes consultas en diferentes apartados:

* Haciendo listado:
Código PHP:
select id_imgnombrequien from TABLA where (nombre like '$ltr%'order by nombre LIMIT $inicio,50 
$ltr = A o B o C , una letra

$inicio = para hacer la paginación y que no salgan de 50 en 50

que indice seria bueno que crease ?¿ o igual no deberia crear indices?¿

* Ahora haciendo busquedas:

Código PHP:
select id_imgnombre from TABLE where  (nom like '%$busqueda%'order by nombre limit 0,100 
Lo mismo seria bueno que me creara algun indice doble ?¿ en los campos id y nombre ?¿

SOCORROOOOOOO, jejejej.

Saludoss
  #3 (permalink)  
Antiguo 12/10/2004, 11:13
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

me interesa el tema, yo encontré este articulo

http://www.mysql-hispano.org/page.php?id=29
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 12/10/2004 a las 11:18
  #4 (permalink)  
Antiguo 12/10/2004, 12:44
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Hola VerderoL
Cuando un campo esta indexado es mucho rápido y eficiente la busqueda, es muy recomedable usar indices, pero no es bueno abusar de ellos.
Si vas hacer busquedas mas complejas es recomedable que uses los índices de texto completo "FULLTEXT" esto es aun mas eficiente.
aqui puedes encontra informacion
http://www.mysql-hispano.org/page.php?id=15&pag=1
saludos!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:05.