SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 31/10/2012, 11:17 AM   #1
steki.
High-roller
 
steki.'s Avatar
 
Join Date: Nov 2010
Location: São Paulo, Brasil
Posts: 2,557
Reputation: 315
Default Dados flutuantes - Integração total com banco de dados

Bem, depois de alguma revisão sobre o que eu escrevo nos meus scripts, cheguei à conclusão que este ponto é razoavelmente discutível. Mas do que eu estou falando?
Pra quem confia mesmo em MySQL e sabe que ele dá conta do recado, já pensou, com hesitação, em escrever um sistema que não salve quase nada em variáveis locais.
O truque é bem simples, a integração é bem leve e você pode aproveitar a dinamicidade do MySQL com joins, prepared statements, subqueries, etc.

Eu, por mim, já escrevi alguns sistemas flutuantes, como o sistema de itens, onde as informações sobre os itens e os itens dos players são processados em tempo real, sem muita queda de performance, aumentando a 'flexibilidade' do script e tornando-o mais genérico.
Isto já existem em muitos jogos MMO e nunca houveram reclamações sobre isso, mas eu queria ouvir a opinião da galera que tem uma ligeira manjada de SQL. Também queria convidar as pessoas para fazerem isso. É bem divertido xD.

:P
__________________
Rio
steki. is offline   Reply With Quote
Old 31/10/2012, 01:25 PM   #2
Joao Pedro
Guest
 
Posts: n/a
Default Re: Dados flutuantes - Integração total com banco de dados

Eu não acho uma boa, por que o servidor de gta oscila sua velocidade de conexão e mesmo se tratando de pedidos localhost, os mesmos podem chegar a demorar segundos. Sem contar que você pegando vários dados simultaneamente, pois vários jogadores poderão estar pegando esses dados ao usarem seus sistemas, poderia causar um lag no servidor MYSQL, pois todos nós sabemos que essas pseudo-empresas não estão nada preparadas para grandes armazenamentos de dados.

Para melhor uso do MYSQL, aconselho colocar apenas os dados, digamos mais importantes e os que você necessita estar mudando constantemente, assim ficará mais dinâmicos. Exemplos de dados:
- Contas
- Organizações
- Empregos

Não é que o MYSQL não dê conta do recado, os fatores são como citei a cima: as pseudo-empresas não tem estrutura para grande envio e recebimento de dados em seus servidores MYSQL e você pegar um dado de uma variável que já está alocada na memória tem uma respostas exageradamente menor do que se você pegar em MYSQL.
  Reply With Quote
Old 31/10/2012, 01:38 PM   #3
ipsBruno
Godfather
 
ipsBruno's Avatar
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,084
Reputation: 545
Default Respuesta: Dados flutuantes - Integração total com banco de dados

Quote:
Originally Posted by Joao Pedro View Post
Eu não acho uma boa, por que o servidor de gta oscila sua velocidade de conexão e mesmo se tratando de pedidos localhost, os mesmos podem chegar a demorar segundos. Sem contar que você pegando vários dados simultaneamente, pois vários jogadores poderão estar pegando esses dados ao usarem seus sistemas, poderia causar um lag no servidor MYSQL, pois todos nós sabemos que essas pseudo-empresas não estão nada preparadas para grandes armazenamentos de dados.

Para melhor uso do MYSQL, aconselho colocar apenas os dados, digamos mais importantes e os que você necessita estar mudando constantemente, assim ficará mais dinâmicos. Exemplos de dados:
- Contas
- Organizações
- Empregos

Não é que o MYSQL não dê conta do recado, os fatores são como citei a cima: as pseudo-empresas não tem estrutura para grande envio e recebimento de dados em seus servidores MYSQL e você pegar um dado de uma variável que já está alocada na memória tem uma respostas exageradamente menor do que se você pegar em MYSQL.
Certamente isto é verdade. Mas buscando um bom host ou até um VPS potente e particular pode-se fazer isto, dizer que não é aconselhado devido a estrutura de algumas empresas da SA:MP é generalizar demais, há tantas alternativas.
__________________
https://github.com/ipsBruno
ipsBruno is offline   Reply With Quote
Old 31/10/2012, 01:55 PM   #4
Joao Pedro
Guest
 
Posts: n/a
Default Re: Dados flutuantes - Integração total com banco de dados

Ainda com uma boa estrutura eu não acho uma boa. Por que pense, para você pegar os dados de um SELECT, você terá que usar o mysql_function_query e ainda criar uma callback para aonde esses dados serão enviados. Então em questão de linhas, seria muito maior...
  Reply With Quote
Old 31/10/2012, 03:58 PM   #5
[JD]BlackFire
Gangsta
 
[JD]BlackFire's Avatar
 
Join Date: Apr 2011
Location: Caxias do Sul - RS
Posts: 744
Reputation: 42
Default Re: Dados flutuantes - Integração total com banco de dados

eu, como administrador de servidores sa-mp e mysql, acredito que para sa-mp não é a melhor alternativa, até mesmo pelos plugins terem um delay e funcionalidades reduzidas, já o servidor mysql a performance dele vai depender dos recursos da máquina.

A melhor alternativa em minha opinião é SQLite, que o próprio server sa-mp dá suporte.
__________________

Programadores e desenvolvedores SA:MP

Gamemodes, Filterscripts, Includes, Sites, Painéis de controle, e muito mais...
AGORA COM HOSPEDAGEM NO BRASIL
Visite nosso site.


iPs Team
Uma das melhores equipes de programadores.

Eu voltei , Yap!!
(BlackCoder)

[JD]BlackFire is offline   Reply With Quote
Old 31/10/2012, 04:20 PM   #6
paulor
High-roller
 
Join Date: Nov 2011
Location: Brasil
Posts: 3,116
Reputation: 222
Default Re: Dados flutuantes - Integração total com banco de dados

É uma ótima ideia, mais basta saber-mos se é a melhor opção..
__________________
Meus Projetos - contato@paulorwd.com.br
[IMG]https://sites.******.com/site/facesbypaulo/MetropoleGames.png[/IMG]
paulor is offline   Reply With Quote
Old 31/10/2012, 09:50 PM   #7
rjjj
Guest
 
Posts: n/a
Default Re: Dados flutuantes - Integração total com banco de dados

Pelo que entendi, seu objetivo é usar variáveis que não são removidas da memória até o fechamento do samp-server como buffers para resultados de queries ao banco de dados .



Pawn é single-threaded. Uma instrução da máquina abstrata é completamente processada para que a leitura da próxima comece.



Apesar de manipular várias threads, o plugin MySQL do BlueG tem que interagir com a máquina abstrata com uma thread só .



Algumas das instruções que citei servem para executar funções nativas. Somente quando estas são totalmente lidas é que passa a ser a vez da instrução seguinte.



Isso significa que a parte de Pawn é uma sequência, evitando, por exemplo, que duas callbacks passem por execução ao mesmo tempo .



Sendo assim, tudo ocorrerá bem se as variáveis em questão forem sempre resetadas no início da callback de obtenção de dados.



Espero ter ajudado .
  Reply With Quote
Old 31/10/2012, 11:47 PM   #8
steki.
High-roller
 
steki.'s Avatar
 
Join Date: Nov 2010
Location: São Paulo, Brasil
Posts: 2,557
Reputation: 315
Default Re: Dados flutuantes - Integração total com banco de dados

Quote:
Originally Posted by Joao Pedro View Post
Ainda com uma boa estrutura eu não acho uma boa. Por que pense, para você pegar os dados de um SELECT, você terá que usar o mysql_function_query e ainda criar uma callback para aonde esses dados serão enviados. Então em questão de linhas, seria muito maior...
Não estou me referindo a linhas.

Quote:
Originally Posted by [JD]BlackFire View Post
eu, como administrador de servidores sa-mp e mysql, acredito que para sa-mp não é a melhor alternativa, até mesmo pelos plugins terem um delay e funcionalidades reduzidas, já o servidor mysql a performance dele vai depender dos recursos da máquina.

A melhor alternativa em minha opinião é SQLite, que o próprio server sa-mp dá suporte.
O único delay significativo seria a espera "hang", se uma query está na fila para ser chamada pelo abstrador.

Quote:
Originally Posted by rjjj View Post
Pelo que entendi, seu objetivo é usar variáveis que não são removidas da memória até o fechamento do samp-server como buffers para resultados de queries ao banco de dados .



Pawn é single-threaded. Uma instrução da máquina abstrata é completamente processada para que a leitura da próxima comece.



Apesar de manipular várias threads, o plugin MySQL do BlueG tem que interagir com a máquina abstrata com uma thread só .



Algumas das instruções que citei servem para executar funções nativas. Somente quando estas são totalmente lidas é que passa a ser a vez da instrução seguinte.



Isso significa que a parte de Pawn é uma sequência, evitando, por exemplo, que duas callbacks passem por execução ao mesmo tempo .



Sendo assim, tudo ocorrerá bem se as variáveis em questão forem sempre resetadas no início da callback de obtenção de dados.



Espero ter ajudado .
Não é bem esse o ponto, mas é um fator bem discutível.
__________________
Rio
steki. is offline   Reply With Quote
Old 01/11/2012, 01:31 AM   #9
ipsBruno
Godfather
 
ipsBruno's Avatar
 
Join Date: Apr 2010
Location: Brazil, Caxias RS
Posts: 6,084
Reputation: 545
Default Respuesta: Re: Dados flutuantes - Integração total com banco de dados

Quote:
Originally Posted by rjjj View Post
Pelo que entendi, seu objetivo é usar variáveis que não são removidas da memória até o fechamento do samp-server como buffers para resultados de queries ao banco de dados .



Pawn é single-threaded. Uma instrução da máquina abstrata é completamente processada para que a leitura da próxima comece.



Apesar de manipular várias threads, o plugin MySQL do BlueG tem que interagir com a máquina abstrata com uma thread só .



Algumas das instruções que citei servem para executar funções nativas. Somente quando estas são totalmente lidas é que passa a ser a vez da instrução seguinte.



Isso significa que a parte de Pawn é uma sequência, evitando, por exemplo, que duas callbacks passem por execução ao mesmo tempo .



Sendo assim, tudo ocorrerá bem se as variáveis em questão forem sempre resetadas no início da callback de obtenção de dados.



Espero ter ajudado .
Não é o ponto. Mas mesmo assim, dá para facilmente fazer um plugin e basea-lo todo em uma thread diferente;
__________________
https://github.com/ipsBruno
ipsBruno is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tutorial] [TUT] Salvamento de Dados ipsBruno Português/Portuguese 55 10/06/2017 09:29 AM
[AJUDA] Banco de Dados Mattos Português/Portuguese 6 13/12/2011 11:08 AM
[Include] Dados Objeto Shelby Lançamentos/Releases 4 20/09/2010 12:28 PM
[ajuda]Banco de dados xolp25 Português/Portuguese 10 04/05/2010 04:17 PM


All times are GMT. The time now is 03:01 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.