Jump to content
Fórum Script Brasil

t0th

Membros
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Neutro

About t0th

  1. Olá, mas acho que isso não resolve meu problema... obrigado
  2. Olá, tenho que seguinte situação, temos um comparador de preços, os produtos vem de lojas. Um produto pode vir com nomes diferentes. Exemplo: Notebook apple macbook 15 , esse produto pode vir das lojas com nomes diferentes: NB apple mac-book 15 notebook apple macbook 15 apple notebook mac-book 15 ...assim por diante... podendo ter variações dos nomes entre lojas diferentes. Pergunto: como posso fazer isso? Quando procurar por exemplo: Notebook apple macbook 15 ele mostrar 'esse produto esta em 5 lojas diferentes'. Ele teria que procurar semelhanças entre os nomes dos produtos e eleger quai
  3. t0th

    Otimização tabela

    olá, se tiver alguém que pode me ajudar com esse problema eu pago pelo trabalho... só me mandar uma MP obrigado e espero resposata
  4. t0th

    Otimização tabela

    Olá, modifiquei algumas coisas: CREATE TABLE IF NOT EXISTS `produtos` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `lojas_id` int(10) unsigned NOT NULL DEFAULT '0', `nome` varchar(60) DEFAULT NULL, `codigo` varchar(15) DEFAULT NULL, `preço` varchar(10) DEFAULT NULL, `descc` text, `foto` varchar(200) DEFAULT NULL, `lastUpdate` varchar(22) NOT NULL, PRIMARY KEY (`id`), KEY `prod_nome2` (`nome`), FULLTEXT KEY `prod_nome` (`nome`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=96227 ; essa query: ---------------------- SELECT sql_cache produtos.nome,produtos.
  5. t0th

    Otimização tabela

    alguma sugestão, galerA? obrigado
  6. t0th

    Otimização tabela

    Olá, Denis, agradeço suas respostas rápidas... VALE LEMBRAR QUE A query com o LOCATE retorna o resultado desejado: MUITO OBRIGADO! executei o comando acima com EXPLAIN e retornou: consulta SQL: explain SELECT straight_join SQL_CACHE produtos.nome, produtos.preço, lojas.nome AS nomeLoja, site, produtos.id FROM produtos force INDEX ( prod_nome ) INNER JOIN lojas ON lojas.id = produtos.lojas_id WHERE ( ( MATCH ( produtos.nome ) AGAINST ( '+notebook' IN BOOLEAN MODE ) ) OR LOCATE( 'nb', produtos.nome ) <>0 ) AND lojas.publish =1 order by produtos.nome asc \G; **************************
  7. t0th

    Otimização tabela

    deixei os dois indices rodei a primeira query e tive o seguinte resultado: consulta SQL: EXPLAIN SELECT SQL_CACHE produtos.nome, produtos.preço, lojas.nome AS nomeLoja, site, produtos.id FROM produtos INNER JOIN lojas ON lojas.id = produtos.lojas_id WHERE (MATCH (produtos.nome) AGAINST ( '+notebook' IN BOOLEAN MODE)) OR LOCATE('nb', produtos.nome) AND lojas.publish =1; Registros: 2 id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE produtos ALL NULL NULL NULL NULL 36453 Using where 1 SIMPLE lojas eq_ref PRIMARY PRIMARY 4 lojasnoparagua.produt
  8. t0th

    Otimização tabela

    olá, obrigado pela resposta removo o indice fulltext do nome antes? obrigado
  9. t0th

    Otimização tabela

    olá, obrigado pela resposta mudei o parenteses de lugar pra usar certo o concat SELECT SQL_CACHE produtos.nome, produtos.preço, lojas.nome AS nomeLoja, site, produtos.id FROM produtos INNER JOIN lojas ON lojas.id = produtos.lojas_id WHERE MATCH (produtos.nome) AGAINST (CONCAT( '+notebook', " ", '+nb ' ) IN BOOLEAN MODE) AND lojas.publish =1 o resultado é o mesmo que a query que te passei antes mas o problema é que ele não está pegando os registro com 'nb ' só os 'notebook' lendo em http://dev.mysql.com/doc/refman/4.1/pt/ful...ine-tuning.html meu servidor ta setado 'ft_min_word_len=3' mi
  10. t0th

    Otimização tabela

    Olá, SELECT sql_cache produtos.nome,produtos.preço,lojas.nome as nomeLoja, site, produtos.id FROM produtos inner join lojas on lojas.id = produtos.lojas_id WHERE ( MATCH (produtos.nome) AGAINST ('+notebook' IN BOOLEAN MODE) or MATCH (produtos.nome) AGAINST ('+nb ' IN BOOLEAN MODE)) and lojas.publish=1 só retorna os registro com notebook não retorna os 'nb ' alguém sabe o que pode ser? obrigado
  11. t0th

    Otimização tabela

    olá, obrigado pela resposta.. dei uma estudada e cheguei a essa 'conversão' a query: SELECT sql_cache produtos.nome,produtos.precco,lojas.nome as nomeLoja, site, produtos.id FROM produtos inner join lojas on lojas.id = produtos.lojas_id where ( produtos.nome LIKE '%processador%' or produtos.nome LIKE '%cpu%') and produtos.nome LIKE '%intel%' and lojas.publish=1 para: SELECT produtos.nome, produtos.precco, lojas.nome AS nomeLoja, site, produtos.id FROM produtos INNER JOIN lojas ON lojas.id = produtos.lojas_id WHERE (MATCH (produtos.nome) AGAINST ('+processador' IN BOOLEAN MODE) or MATC
  12. t0th

    Otimização tabela

    valeu, Denis.. mas como ficaria a query sem os LIKE? obrigadão
  13. t0th

    Otimização tabela

    olá, modifiquei todas as tabelas para MyISAM pode me sugerir quais campos para indice FULLTEXT? obrigado
  14. t0th

    Otimização tabela

    ola, os indices são: Nome chave Tipo Campo PRIMARY PRIMARY 37826 id lojas_id INDEX 37 lojas_id codigo INDEX 37826 codigo tipo da tabela produtos: InnoDB não posso retirar o LIKE, pois ai acabaria com a minha pesquisa.. para trocar para MyISAM teria que trocar as tabelas pai para MyISAM, certo? não acabaria com minhas chaves extrangeiras? quais campos posso criar indice FULLTEXT? nome? obrigado
  15. t0th

    Otimização tabela

    Olá, tenho a seguinte tabela: CREATE TABLE IF NOT EXISTS `produtos` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `lojas_id` int(10) unsigned NOT NULL DEFAULT '0', `nome` varchar(60) DEFAULT NULL, `codigo` varchar(15) DEFAULT NULL, `preço` varchar(10) DEFAULT NULL, `descc` text, `foto` varchar(200) DEFAULT NULL, `lastUpdate` varchar(22) NOT NULL, PRIMARY KEY (`id`), KEY `lojas_id` (`lojas_id`), KEY `codigo` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=62123; -- -- Restrições para a tabela `produtos` -- ALTER TABLE `produtos` ADD CONSTRAINT `p
×
×
  • Create New...