Portal SAMP
[DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? (/showthread.php?tid=1265)



[DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - yoda - 06/06/2021

Olá amigos, tenho um servidor bate aproximadamente 400 Players, tinhamos um sistema de salvamento em DOF, a gm tinha vários loops e tal, mal otimizada, os quais foram retirados, e o sistema de salvamento foi passado para SQL LITE, o arquivo .db já está pesando 100MB, será qual dos sistemas de salvamento será que é melhor? Levando em consideração a grande quantidade de acessos simultaneos? Obrigado, tamo junto.


RE: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - xbruno1000x - 06/06/2021

(06/06/2021 21:46)yoda Escreveu: Olá amigos, tenho um servidor bate aproximadamente 400 Players, tinhamos um sistema de salvamento em DOF, a gm tinha vários loops e tal, mal otimizada, os quais foram retirados, e o sistema de salvamento foi passado para SQL LITE, o arquivo .db já está pesando 100MB, será qual dos sistemas de salvamento será que é melhor? Levando em consideração a grande quantidade de acessos simultaneos? Obrigado, tamo junto.

Tem algum problema aí, salvamentos samp não costumam ocupar muito espaço, mesmo com 400 players. Qual foi o motivo da alteração do DOF2? Na minha visão é o melhor sistema de salvamento que existe no SA-MP e os arquivos DOF2 tem uns 3KB em média. Considerando que você gasta 100MB em armazenamento, em DOF2 isso seria capaz de armazenar:

100MB = 100.000KB

100.000KB ÷ 3KB = 33.333 CONTAS!!!!


RE: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - yoda - 06/06/2021

São normalmente 400 Online simultaneos, porém temos 57mil contas registradas.


RE: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - Dr Editor - 07/06/2021

Entenda que, independentemente da forma de salvamento, você irá armazenar na memória a mesma quantidade de dados. A diferença será apenas em como você acessa e salva estes dados.

Não é minha opinião, é um fato: SQLite é anos luz melhor que DOF2 ou qualquer outro salvamento em arquivo de texto quando o assunto é salvamento em massa com grande quantidade de dados.
  • Organizado
  • Manipulação de dados melhor
  • Consultas avançadas
  • Rápido
Salvar em arquivos de texto é bom para salvar pequenas informações, mas se você já possui um banco de dados não vejo necessidade de utilizar uma biblioteca adicional para manipular dados.

O tamanho do banco de dados não é relevante, considerando que haja muitas contas armazenadas e muitas informações salvas.
O que sugiro é remover contas inativas há muito tempo, pois com certeza era uma conta smurf ou de algum usuário que não tem mais intenção de usá-la.


RE: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - xbruno1000x - 07/06/2021

(06/06/2021 23:44)yoda Escreveu: São normalmente 400 Online simultaneos, porém temos 57mil contas registradas.

Nesse caso, cada conta tem em média 1.8KB, o que é totalmente normal. Mas 57 mil contas? Crie um sistema de auto exclusão de contas, coloque para deletar contas com mais de X tempo de inatividade.


RE: [DUVIDA] Sistema de Salvamento? SQL Lite, MySql, ou Dof? - willttoonn - 09/06/2021

Eu optaria transferir para MySQL e não para SQLite.

O banco de dados do meu gamemode é MySQL e extremamente pesado e atualmente tem 2.16gb, mas isso não afeta em nada relacionado a processamento durante a jogatina em horários de pico. Eu criei um ciclo para amenizar o impacto de ter um banco de dados extremamente pesado.

O principal deles é que os dados brutos (o que o servidor oferece aos jogadores) só carregam uma vez no dia, isso inclui casas, empresas, garagens, itens dropados, mobílias (só aqui são 200,000 linhas de dados com mais de 30 campos cada uma). O meu servidor tem quase 45.000 veículos cadastrados, como eu sei que nem 1.000 vão ser usados diariamente eu impus um limite de carregamento similar ao SA-MP, diariamente o servidor apenas carrega até 2.000, isso já tem 2 anos que fiz essa adaptação. As mobílias eu não posso fazer o mesmo, pois custaria processamento, se cada propriedade carregasse apenas a mobília quando alguém entrasse nela haveriam picos de processamento, pois o limite atualmente em cada uma é de até 550 mobílias, diferente dos veículos que são em média 5-6 por jogador e o limite atual é 6. Apesar do meu servidor ser de roleplay, o que é bem diferente e faz necessário esse acumulo de informações, a lógica é aplicável em todos os tipos de gamemode.

O ideal é você separar o carregamento de dados em dois tipos: bruto e livre. O bruto é os dados que tem que ta no servidor, inclusive se ele estiver vazio. O livre é os dados inerentes a um player, só são carregados quando ele entra no jogo e quando sai são descarregados da memória.

O tamanho de 100mb em um banco de dados no MySQL é bem pequeno para falar a verdade, eu não estou acostumado com o SQLite, mas em comparação com o MySQL eu prefiro o MySQL pois a aplicação dele é bem mais ampla que apenas o SA-MP e mais fácil de obter ajuda.