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

index en campo SET

Estas en el tema de index en campo SET en el foro de Mysql en Foros del Web. Hola a todos. En busca de un excelente rendimiento, acudo a ustedes para saber su opinion sobre esta situación. Tengo una tabla en donde existe ...
  #1 (permalink)  
Antiguo 11/04/2009, 19:54
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
index en campo SET

Hola a todos. En busca de un excelente rendimiento, acudo a ustedes para saber su opinion sobre esta situación.

Tengo una tabla en donde existe un campo tipo set con aproximadamente 60 valores. Necesito hacer muchas consultas utilizando valores presentes en este set por lo cual necesitaria indexar este campo pero dice la documentación de mysql que un indice aqui, solo indexa el campo entero, más no cada valor. Por lo cual el indice sería inoperante.

Cual consideran que es la mejor manera de hacer esta consulta con el mejor rendimiento?

Gracias
__________________
Desdichado quien duerme en la mañana
  #2 (permalink)  
Antiguo 12/04/2009, 13:19
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: index en campo SET

Hola sofway

Las operaciones que se se llevan en esa columna son a nivel de Bits, por que el rendimiento debería ser bastante eficiente, incluso trabajando con cantidades grandes.

He leido info que explorando data de mas o menos 500000 filas los resultados no superaron los 1,89 segundos.

Así que por su naturaleza esa columna siempre tendrá la tendencia de ser eficiente.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 12/04/2009, 18:10
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Respuesta: index en campo SET

acabo de encontrar un problema. El campo set solo me deja tener 64 valores. Mi necesidad es de 140. Alternativas que no sean involucrar otra tabla?
__________________
Desdichado quien duerme en la mañana
  #4 (permalink)  
Antiguo 13/04/2009, 15:21
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: index en campo SET

Hola sofway

que deseas lograr, talvez si nos cuentas mas a detalle te podamos dar alguna otra alternativa
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 13/04/2009, 15:25
 
Fecha de Ingreso: abril-2004
Mensajes: 154
Antigüedad: 20 años
Puntos: 0
Respuesta: index en campo SET

Hola genetix,

Mira te doy mas detalle.. una tabla de productos muy extensa, con una columna que guardará aproximadamente 140 categorias. Este campo no puede ser tipo set porque un producto puede tener varias categorias. Pero tampoco puede ser set, porque el maximo permitido por set es de 64. Por lo tanto la alternativa seria tener otra tabla donde solo tenga las categorias asociadas a un producto en la tabla productos. Lo que no quiero es tener que hacer este join porque el volumen de consultas está en el orden de miles en poco tiempo, y no quisiera tener que involucrar 2 tablas.

Que me dicen? espero haber sido claro
__________________
Desdichado quien duerme en la mañana
  #6 (permalink)  
Antiguo 13/04/2009, 17:16
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: index en campo SET

Lo que entiendo es que deseas que la respuesta a la consulta sea extremadamente rápida? y para eso deseas obviar los JOINS?

En principio creo que es imprescindible tener 3 tablas producto, categoria y producto_categoria.

Y para acelerara mas el preoceso de consulta, se me ocurre 2 alternativas

1. Que trabajes con tablas MEMORY, los cuales son tablas temporales y son muy rápidas.

2. trabajes con una vista y usando como algoritmo MERGE, de esta manera la vista empleara una tabla temporal y obtendrás rapidez

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
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 05:18.