Alguma Sugestão Em Php Para Estouro De Memória
Started By Greg, 24/07/2009, 15:45
10 replies to this topic
#1
Posted 24/07/2009, 15:45
pessoal,
estou efetuando uma busca em um BD MySQL e gostaria de saber se wexiste algum método em php que auxilie na busca, pois está buscando cerca de 200.000 resultados e está dando estouro de memória, alguma sugestão?
valeu!
estou efetuando uma busca em um BD MySQL e gostaria de saber se wexiste algum método em php que auxilie na busca, pois está buscando cerca de 200.000 resultados e está dando estouro de memória, alguma sugestão?
valeu!
#2
Posted 24/07/2009, 16:18
Vc realmente precisa buscar os 200.000 registros? E realmente precisa buscar todos os campos que está buscando atualmente?
Explique melhor sua situação, com a tabela, query, etc para que possamos ajudar.
Explique melhor sua situação, com a tabela, query, etc para que possamos ajudar.
Thales Santos
#3
Posted 24/07/2009, 16:40
lá vai, na verade são 500.000 resultados e 3 campos apenas , id,nome,email.
lá vai a a query:
[codebox]
SELECT id_cliente, nome, email
FROM clientes_pf
ORDER BY rand( )LIMIT 500000
[/codebox]
preciso em uma tabela de 3.000.000 (três milhões de resultados ), buscar 500.000 randomicamente, pensei em usar limit mas limit n seria randomico e sim os 500.000 primeiros.
alguma sugestão?
lá vai a a query:
[codebox]
SELECT id_cliente, nome, email
FROM clientes_pf
ORDER BY rand( )LIMIT 500000
[/codebox]
preciso em uma tabela de 3.000.000 (três milhões de resultados ), buscar 500.000 randomicamente, pensei em usar limit mas limit n seria randomico e sim os 500.000 primeiros.
alguma sugestão?
#5
Posted 27/07/2009, 15:57
não entendi...
preciso buscar 500.000 resultados randomicamente e guardá-los em uma variável....
eu consegui utilizando for e limit, mas dessa forma não é randomico e sim os 500.000 primeiros.
Desesperadamente no aguardo.
Valeu!
preciso buscar 500.000 resultados randomicamente e guardá-los em uma variável....
eu consegui utilizando for e limit, mas dessa forma não é randomico e sim os 500.000 primeiros.
Desesperadamente no aguardo.
Valeu!
#6
Posted 27/07/2009, 16:01
Não greg...
Se você colocar o LIMIT de 500.000, ele pega somente 500.000 dos 3 milhões, mas de forma randômica.
Funciona da maneira que está fazendo.
Fiz um teste com uma tabela que eu tenho, que tem alguns milhares de registros, e deu certo.
mas como disseram, o RAND() não é eficaz, por isso, aconselho dar uma lida mais atenciosa ao post do Crab.
Até mais
Se você colocar o LIMIT de 500.000, ele pega somente 500.000 dos 3 milhões, mas de forma randômica.
Funciona da maneira que está fazendo.
Fiz um teste com uma tabela que eu tenho, que tem alguns milhares de registros, e deu certo.
mas como disseram, o RAND() não é eficaz, por isso, aconselho dar uma lida mais atenciosa ao post do Crab.
Até mais
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador
Twitter: HostCheap
#7
Posted 27/07/2009, 17:16
não compreendi o exemplo...
se puder esmiuçar por favor...
se puder esmiuçar por favor...
Edição feita por: Greg, 27/07/2009, 17:56.
#8
Posted 27/07/2009, 18:01
Tentou setar o limite de memoria no php.ini ?? ou sou eu que n to entendo nada?
#9
Posted 27/07/2009, 21:04
oe coloca limit 500000 order by id asc ou desc
#10
Posted 27/07/2009, 23:20
os ids dos clientes sao sequenciais?
você poderia fazer uma função separada do mysql para gerar um array de valores aleatórios e depois buscar exclusivamente estes valores.
Estou pesquisando aqui e se encontrar algo de interessante, postarei aqui.
quanto a sugestão do amigo acima de limitar a memoria via php.ini, não faria sentido pois a ideia aqui é otimizar a query, limitar a memoria pelo php só iria travar o script em questao e nao iria trazer os resultados.
você poderia fazer uma função separada do mysql para gerar um array de valores aleatórios e depois buscar exclusivamente estes valores.
Estou pesquisando aqui e se encontrar algo de interessante, postarei aqui.
quanto a sugestão do amigo acima de limitar a memoria via php.ini, não faria sentido pois a ideia aqui é otimizar a query, limitar a memoria pelo php só iria travar o script em questao e nao iria trazer os resultados.
#11
Posted 28/07/2009, 10:25
é, são sequenciais, mas estão do tipo 521, 759 , 854 , 1026 , 10524... entendeu estão sequenciais, mas não seguem uma ordem cronológica... Sinceramente já não sei mais mesmo o que tentar...
no aguardo de alguma luz.
valeu!
no aguardo de alguma luz.
valeu!
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)