Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mr. Borges

Datatables e Milhoes de Registros

Recommended Posts

Boa tarde meu amigos.

 

Podem me ajudar com datatables e milhoes de registros? ^^

 

Tenho uma pagina php com datatables configurado para buscar no banco de dados uma tabela com uma média de 76 milhoes de registros(Tipo: MyISAM) usando o script php padrão do proprio datatables que por sinal é mto bom. (http://datatables.net/release-datatables/examples/data_sources/server_side.html).

 

Mas mesmo assim não está sendo suficiente... vcs tem alguma ideia de como posso otimizar isso?

 

Segue o trecho da minha chamada do datatables... o php server-side como referenciam nos artigos é o mesmo d o link acima.

 

<script>
$(function(){
	if ($('.dynamicTable1').size() > 0){
	oTable_informacoes = $('.dynamicTable1').dataTable({
			"sPaginationType": "bootstrap",
			"sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
			"aoColumnDefs": [ { "bVisible": false, "aTargets": [ 0 ] } ],
			"aaSorting": [[ 0, "asc" ]],
			"bProcessing": true,
			"bServerSide": true,
			"sAjaxSource": "includes/data_tables.php",
			"fnServerParams": function (aoData) {  
				aoData.push( 
					{ "name": "tipo", "value": "<?php echo $tipo; ?>" }
				);  
			},	
			"oLanguage": {
				"sLengthMenu": "_MENU_ resultados por página"
			}
		});
	}	
});
</script>

Obrigado desde ja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu vi que tem um limit no script

 

mais de qualquer forma procure por "tuning mysql"

 

é uma forma que se tem de otimizar um banco deste tamanho ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso procurar por isso.

Mas o limit no codigo é para paginação... o script é mto bom... ele mostra quantidades relativamente altas em segundos... mas eu nunca havia testado ele com milhoes de resultados.... ele chega mostrar os resultados mas leva muito tempo, estou levando em torno de 3 a 5 minutos para exibir, e isso quando não congela. Preciso otimizar isso... vi relatos no forum do proprio datatables que pessoas conseguem buscar 200 milhoes numa boa.... é frustrante isso kkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca trabalhei com volume desta natureza, no máximo 2,5 milhões

 

Vai ter que mexer no código para funcionar seu índices

 

... FROM `table` USE INDEX (name_indice) WHERE ...

 

Sugiro a criar partições, e pedir ajuda para galera do fórum de SGBD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que cheguei tarde, mas enfim, já trabalhei com mais de 700 milhões de dados, dicas importantes:

 

- Criar indices(como já foi dito acima), índices para os campos que tu passará em where.

- Possibilidade de trabalhar com cache de banco de dados, se tu usa algum Framework possivelmente já deve ter isso nativo.

- Possibilidade de trabalhar com uma camada não relacional, ou seja um banco não relacional para trazer os dados mais rapidamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.