Jump to content


Photo

Vantagens E Desvantagens De Armazenar Variáveis De Seção No Banco


  • Faça o login para participar
3 replies to this topic

#1 ShZlot

ShZlot

    12 Horas

  • Moderadores
  • 121 posts
  • Sexo:Masculino
  • Localidade:Bahia

Posted 12/11/2014, 13:19

Quais as vantagens e desvantagens de armazenar variáveis de sessão no banco de dados?
A partir do Rails 4.0, foi eliminado o ActiveRecord Session Store, que guardava variáveis de sessão no banco de dados, por "problemas de desempenho." Porém a funcionalidade continua funcionando através de uma gem. Hoje o Rails utiliza o Cookie Session Store.

OFF: ActiveRecord session store - The ActiveRecord session store is extracted to a separate gem. Storing sessions in SQL is costly. Instead, use cookie sessions, memcache sessions, or a custom session store.

Fonte: http://edgeguides.ru...ease_notes.html


Traduzido:

OFF: ActiveRecord session store - O ActiveRecord session store foi transferido para uma gem separada. Armazenar sessões no banco de dados é custoso [em termos de desempenho]. Ao invés disso, use sessões baseadas em cookies, memcache sessions, ou uma session store personalizada.



Apesar disso, encontro referências na web dizendo que ainda é recomendado o seu uso (para evitar session hijacking, por exemplo). O próprio guia do Rails sobre segurança (http://guides.rubyon...g/security.html) parece sugerir isso, apesar de não citar nominalmente a gem.

Afinal, é realmente vantagem usar o banco de dados para guardar variáveis de sessão, como o id do usuário logado, etc? O custo de desempenho chega a ser perceptível?

Trabalho desenvolvendo no melhor e mais completo CMS do tipo SaaS. Conheça você também e crie um site grátis no uCoz.


#2 shogun89

shogun89

    Normal

  • Usuários
  • 91 posts
  • Sexo:Masculino
  • Localidade:marilia

Posted 13/11/2014, 13:55

Não sou um especialista em Web, mas acredito que posso contribuir com a questão.

Sessões no banco de dados

Vantagens

  • Fácil escalabilidade Considerando que não seja uma aplicação que utilize replicação da base de dados, é mais simples armazenar os dados em um recurso que seja compartilhado entre os servidores.
  • Facilidade de implementação Controlar uma sessão via banco gera uma implementação mais simples, baseada em queries e comandos sql, coisa que a maioria dos desenvolvedores conhece bom

Desvantagens

  • Lentidão Sendo um recurso compartilhado, se a quantidade de leituras e gravações for muito grande, a "vantagem" de ser um recurso compartilhado pode causar lentidão em todos os servidores por excesso de carga na base de dados
  • Violação de camadas Tecnicamente, o banco de dados é uma camada de persistência, e não um recurso meio ou de armazenamento temporário. Sendo assim, locais que não precisariam serializar seu acesso, solicitando dados à base, passam a exigir mesmo onde não existe a necessidade

Alternativas
Reddis: é um servidor de dados em memória, distribuído com opcional de persistência com ótima velocidade, open source e mantido pela Pivotal Software Fonte: Wikipedia

Memcached: Sistema de cache distribuído de objetos em memória de alta performance, gratuito e de código aberto. Fonte: http://memcached.org/

Não utilizar a sessão, mas sim manter na app cliente os dados e utilizar autenticação por basic, Digest ou token authentication

#3 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13822 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 18/09/2017, 06:30

Elocon Website Internet Fedex Shipping Low Price viagra cialis Canadian Pharmacy Stock
Mer Buy Bentyl 20mg Cod Only
Amoxicillin Bloos Sugar online pharmacy Mode D'Utilisation Du Viagra

#4 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13822 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 29/09/2017, 10:37

Metformin Overnight Delivery Viagra online pharmacy Order Page Buy Cialis Usa




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq