Ir para conteúdo

POWERED BY:

Arquivado

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

David Figueiredo

Funcionamento do MYSQL

Recommended Posts

Boa tarde!

 

Estou com essa duvida e gostaria que vocês me ajudassem:

 

Estou desenvolvendo uma aplicação onde terei que gerar uma string (numero e letras) unica para cada registro inserido no banco, essa string tem que ser seqüencial, por isso, antes de inserir eu consulto o banco e pego a string gerada para o ultimo registro para poder gerar essa nova string sequencial. Esta aplicação terá muitos acessos simultâneos, então vem a pergunta:

 

Como o MySQL se comporta nesses casos? ele espera uma requisição acabar para executar outra ou executa varias ao mesmo tempo?

 

Pergunto isso porque se o MySQL executar varias requisições ao mesmo tempo eu corro o risco de duplicar essa string, desse jeito minha aplicação não seria segura.

 

Espero que tenha ficado claro e que vocês possam me ajudar.

 

Desde já agradeço a tenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu entendimento esta correto.

 

Para solucionar este problema você pode criar um procedimento onde na mesma requisição você recupera e gera um novo sequencial.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra nao ter esse tipo de complicação, as vezes faço algo simples, mas é meio tosco

 

gero um id baseado no timestamp e adiciono um rand

 

em php é algo assim

 

uniqid( time() )

 

isso gera uma string de 22 à 25 caracteres.

 

o inconveniente é que o ID fica muito extenso.

as chances de sair algo repetido é muito remoto porque é baseado no timestamp.

 

é possível coincidir mais de uma execução com o mesmo timestamp, por isso adiciono o uniqid() só pra garantir maior integridade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de inserir eu consulto o banco e pego a string gerada para o ultimo registro para poder gerar essa nova string sequencial

Vou perguntar porque não sei como funciona a sua aplicação. Não dá para inserir no banco somente no final do processo? Talvez trabalhando com informações temporárias e atualizando estas ao final de acordo com a nova string sequencial?

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.