TeRRaBR 0 Denunciar post Postado Setembro 3, 2009 Bom dia, Primeiramente irei explicar o ocorrido. Existe uma tabela em meu banco com mais de 1 milhão de registros.. Preciso efetuar um delete para apagar os registros mais antigos.. Porém, ao rodar o delete, a demora é absurda.. e não temos todo esse tempo, infelizmente. Gostaria de saber como declarar para o delete efetuar a rotina por um certo index existente, assim deixando mais rapido. Agradeço, até Galera.. Se alguém naõ entender.. por favor questione.. pois estou mesmo precisando ! >.< Não consigo achar nada relacionado... Valeu! Certo.. vou tentar explicar melhor..rsrs a minha duvida é como eu utilizo INDEX em um DELETE.. Pois o meu problema é o tempo que leva para rodar o script.. e sei que com index, o processo é mais rapido.. porém não sei como utilizar index no delete(sintaxe). Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Setembro 3, 2009 Qual a versão do seu MySql ? Compartilhar este post Link para o post Compartilhar em outros sites
TeRRaBR 0 Denunciar post Postado Setembro 3, 2009 Qual a versão do seu MySql ? 5.1.11 Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Setembro 3, 2009 Procure por Create Index Compartilhar este post Link para o post Compartilhar em outros sites
TeRRaBR 0 Denunciar post Postado Setembro 3, 2009 Procure por Create Index eu ja tenho as index criadas.. porém só preciso saber como informala na sintaxe.. Exemplo: delete from nome_tabela where `DATA` < '2009-01-01'; eu quero que ao efetuar o delete, ele busque direto pelo campo DATA, para não precisar ler todo o banco, apenas o banco que eu declarar. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Renan 2 Denunciar post Postado Setembro 4, 2009 basta você criar o índice para o campo DATA que o mysql vai usá-lo para identificar os registros a serem deletados... caso ainda continue lento.. e se sua tabela tiver uma PK com auto incremento.. experimente pegar o Id (de acordo com a data) e deletar os registros com Id igual ou menor que o determinado registro.. mas teste isso, não sei se vai ajudar muito Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Setembro 4, 2009 http://dev.mysql.com/doc/refman/5.0/en/index-hints.html mas normalmente você nao consegue aplicar ganhar do banco em otimizaçao de uso de indice Compartilhar este post Link para o post Compartilhar em outros sites
TeRRaBR 0 Denunciar post Postado Setembro 4, 2009 basta você criar o índice para o campo DATA que o mysql vai usá-lo para identificar os registros a serem deletados... caso ainda continue lento.. e se sua tabela tiver uma PK com auto incremento.. experimente pegar o Id (de acordo com a data) e deletar os registros com Id igual ou menor que o determinado registro.. mas teste isso, não sei se vai ajudar muito Pois é.. Também pensei nisso.. Porém, a base é uma m*****.. to reestruturando ela!! Os ID's é tudo fora de ordem, não sei como acontece uma coisa dessa.. http://dev.mysql.com/doc/refman/5.0/en/index-hints.html mas normalmente você nao consegue aplicar ganhar do banco em otimizaçao de uso de indice Vou ver o que posso fazer.. O boss aqui falou pra usar um indíce para filtrar e ficar mais rápido (na tabela temos registros desde 2004, levando mais de 3 horas para deletar CADA ANO! ) porém, nao estou sabendo a sintaxe! Vou tentar e qualquer coisa posto aqui.. Enquando isso, se alguém mais tiver um palpite.. por favor.. eu aceito ! rsrs Valeu galera! Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Setembro 4, 2009 Meu amigo, index serve para encontrar as linhas dentro da tabela, para deletar eh necessario uma manifestacao fisica do banco de dados dentro do HD, ou seja, escrever no HD q as linhas foram deletadas, dependendo do tamanho das linhas e a qtde delas isso realmente vai demorar mto tempo, da mesma forma que copiar um arquivo mto grande de um lado ao outro do HD demora horas as vezes, ou seja seu gargalo pode estar no HD em si. Compartilhar este post Link para o post Compartilhar em outros sites