Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2012, 11:02
Rasec101
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Problemas al listar galeria de clientes

Buenas Tardes necesito optimizar esta consulta ya que me sobre carga el servidor lo que pasa que necesito listar las galerias de imagenes de las personas que tienen cuenta en mi sitio esta es la consulta
Código MySQL:
Ver original
  1. clientes.idCliente,
  2. clientes.nombres,
  3. COUNT(distinct anuncios.idAnuncio) AS totalAnuncios, COUNT(galeriaclientes.idGC) AS totalGaleria,
  4. clientes.apellidoPaterno,
  5.  clientes.apellidoMaterno,
  6.  perfiles.nombre AS tipoCliente,
  7. clienteinfo.esEmpresa,
  8. clienteinfo.nombreEmpresa
  9. FROM clientes
  10. LEFT OUTER JOIN galeriaclientes ON (clientes.idCliente=galeriaclientes.idCliente) LEFT OUTER JOIN anuncios ON (clientes.idCliente=anuncios.idCliente)
  11. LEFT OUTER JOIN usuarioclientes ON (clientes.idCliente=usuarioclientes.idCliente) INNER JOIN perfiles ON (usuarioclientes.idPerfil=perfiles.idPerfil)
  12. INNER JOIN clienteinfo ON (clientes.idCliente=clienteinfo.idCliente)
  13. clientes.idCliente,
  14. clientes.nombres,
  15.  clientes.apellidoPaterno,
  16. clientes.apellidoMaterno,
  17. perfiles.nombre,
  18. clienteinfo.esEmpresa,
  19. clienteinfo.nombreEmpresa
  20.  clientes.nombres,
  21. clienteinfo.nombreEmpresa
me lista asi los datos
# / Cliente /Cuenta /Imagenes /Anuncios /Estado
1 /Estancia del Totoral /Cuenta Gratuita /0 /1 /Sin Imagenes
2 /Van Hasselt /Cuenta Gratuita /1 /1 /Con Imagenes
3 /Agícola Neuquén /Cuenta Gratuita /0 /0 /Sin Imagenes
4 /Agricola Gildemeister S.A. /Cuenta Silver /144 /12 /Con Imagenes
5 /Agrícola Viveros Parlier Ltda /Cuenta Gratuita /0 /17 /Sin Imagenes
6 /Agrocor Ltda. Cuenta Gratuita /1 /1 /Con Imagenes

estas son las estructuras de mis tablas
tabla Clientes
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `clientes` (
  2.   `idCliente` int(11) NOT NULL auto_increment,
  3.   `idTipoCliente` int(11) NOT NULL,
  4.   `nombres` varchar(100) NOT NULL,
  5.   `apellidoPaterno` varchar(80) default NULL,
  6.   `apellidoMaterno` varchar(80) default NULL,
  7.   `rut` varchar(12) default NULL,
  8.   `fNacimiento` date default NULL,
  9.   `sexo` char(1) default NULL,
  10.   `email` varchar(100) default NULL,
  11.   `fhCreacion` datetime NOT NULL,
  12.   `fhModificacion` datetime NOT NULL,
  13.   `idEstado` int(11) NOT NULL,
  14.   PRIMARY KEY  (`idCliente`),
  15.   KEY `nombres` (`nombres`),
  16.   KEY `apellidoPaterno` (`apellidoPaterno`),
  17.   KEY `fhCreacion` (`fhCreacion`),
  18.   KEY `idEstado` (`idEstado`)
  19. )

Tabla de anuncios

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `anuncios` (
  2.   `idAnuncio` int(11) NOT NULL auto_increment,
  3.   `idTipoAnuncio` int(11) NOT NULL,
  4.   `idCliente` int(11) NOT NULL,
  5.   `titulo` varchar(200) NOT NULL,
  6.   `fhCreacion` datetime NOT NULL,
  7.   `fhModificacion` datetime NOT NULL,
  8.   `fhPublicacion` datetime NOT NULL,
  9.   `idEstado` int(11) NOT NULL,
  10.   PRIMARY KEY  (`idAnuncio`),
  11.   KEY `idTipoAnuncio` (`idTipoAnuncio`),
  12.   KEY `idCliente` (`idCliente`),
  13.   KEY `fhPublicacion` (`fhPublicacion`),
  14.   KEY `idEstado` (`idEstado`),
  15.   FULLTEXT KEY `titulo` (`titulo`)
  16. )

Tabla Galeria de clientes

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `galeriaclientes` (
  2.   `idGC` int(11) NOT NULL auto_increment,
  3.   `idCliente` int(11) NOT NULL,
  4.   `nombreImagen` varchar(100) NOT NULL,
  5.   `orden` int(11) NOT NULL,
  6.   `logo` varchar(11) NOT NULL,
  7.   `fhCreacion` datetime NOT NULL,
  8.   `fhModificacion` datetime NOT NULL,
  9.   `idEstado` int(11) NOT NULL,
  10.   PRIMARY KEY  (`idGC`)
  11. )
Tabla clientes info
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `clienteinfo` (
  2.   `idClienteInfo` int(11) NOT NULL auto_increment,
  3.   `idCliente` int(11) NOT NULL,
  4.   `esEmpresa` char(1) NOT NULL default '0',
  5.   `nombreEmpresa` varchar(120) NOT NULL,
  6.   `fhCreacion` datetime NOT NULL,
  7.   `fhModificacion` datetime NOT NULL,
  8.   `idEstado` int(11) NOT NULL,
  9.   PRIMARY KEY  (`idClienteInfo`),
  10.   KEY `esEmpresa_2` (`esEmpresa`)
  11. )


Tabla de perfiles de clientes

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `perfiles` (
  2.   `idPerfil` int(11) NOT NULL auto_increment,
  3.   `prioridad` int(11) NOT NULL,
  4.   `nombre` varchar(80) NOT NULL,
  5.   `idEntidad` int(11) NOT NULL,
  6.   `descripcion` text,
  7.   `fhCreacion` datetime NOT NULL,
  8.   `fhModificacion` datetime default NULL,
  9.   `idEstado` varchar(11) NOT NULL,
  10.   PRIMARY KEY  (`idPerfil`)
  11. )
y Tabla de Usuario Clientes
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `usuarioclientes` (
  2.   `idUsuarioClientes` int(11) NOT NULL auto_increment,
  3.   `idPerfil` int(11) NOT NULL,
  4.   `idCliente` int(11) NOT NULL,
  5.   `fhCreacion` datetime NOT NULL,
  6.   `fhModificacion` datetime NOT NULL,
  7.   `fhUltimoAcceso` datetime NOT NULL,
  8.   `idEstado` int(11) NOT NULL,
  9.   PRIMARY KEY  (`idUsuarioClientes`)
  10. )
espero aberme esplicado bien ya que me tiene medio complicado esta consulta desde ya muchas gracias