É possível ter uma base de dados offline

conto: descarreguei um uploader java/flash e um dos ficheiros foi um .PO. Depois de uma pesquisa, encontrei uma base de dados. O que levou à pergunta. Posso fazer uma base de dados (.db) arquivo e salvá-lo em uma pasta em meu diretório raiz, em vez de ter que confiar em outro servidor e consulta sql? Assim, teoricamente, acelerar o meu site, acedendo apenas a ficheiros locais.

O problema é que fiz muita pesquisa e não encontrei resposta. Principalmente acho que porque nunca já lidei com isto antes para não saber onde procurar.

A pergunta: Alguém já ouviu falar de tal coisa? E se assim for, você poderia me referir a um site tutorial ou fornecer uma breve definição/ explicação/ exemplo de como isso funcionaria e que tipo de linguagem de comunicação seria usado entre os arquivos? SQL? mais alguma coisa? Não sei!

Obrigado a todos pela vossa ajuda.

Author: Chaky31, 2013-01-22

6 answers

[a parte boa] Teoricamente, Sim, tu consegues. Um exemplo seria SQLite database . Esta base de dados é um único arquivo que você armazena onde quiser. Se estiver a codificar em PHP, terá de instalar a extensão correspondente com o seu PHP para aceder/consultar esta base de dados.

[a parte má Isso só faz sentido se você estiver lidando com pequenas quantidades de dados e suas consultas são relativamente simples. As bases de dados Sqlite são lentas e de suporte apenas um conjunto limitado de operações sql. Eles também não têm suporte para muitos tipos de dados padrão e falta um monte de funções embutidas que você pode confiar. As bases de dados Sqlite são muito boas se você quiser um suporte db simples em um aplicativo autônomo (por exemplo, aplicação móvel com dados locais), mas não muito bom para armazenar grandes quantidades de dados transacionais.

[o veredicto. Se você está olhando para acelerar a sua aplicação web, a mudança de um banco de dados adequado para sqlite provavelmente só impedir o seu aplicativo, não evitá-lo.

 1
Author: Aleks G, 2013-01-22 19:01:58

O SQLlite pode fornecer um banco de dados que funciona sem usar um servidor. Ele fornece uma interface SQL padrão como você usaria com um servidor SQL reguar (MySQL etc). Seu provavelmente não vai ser mais rápido como ele vai confiar em muito mais Disco I / O do que um servidor de banco de dados padrão.

 1
Author: datasage, 2013-01-22 18:57:36
O que realmente acho que estás a perguntar é sobre uma base de dados de ficheiros plana.

Http://www.databasedev.co.uk/flatfile-vs-rdbms.html

 0
Author: DrCorduroy, 2013-01-22 18:59:15

Quase qualquer solução de banco de dados que você pode nomear depende de arquivos como o mecanismo de armazenamento, então apenas ter dados armazenados em um arquivo não transmite qualquer bônus de desempenho inerente à sua aplicação. Bases de dados sem servidor como o SQLite existem, mas as razões para selecioná-las raramente têm a ver com o desempenho, mas sim com a portabilidade.

Pode executar instâncias locais do MySQL ou de outras bases de dados para eliminar o custo de transmissão. Se estiverem devidamente configurados, Irão supere algo como o SQLite na maioria dos casos, já que o MySQL depende do armazenamento em memória, além do armazenamento em disco. Uma vez que parece que você é muito novo neste tipo de coisas, eu daria uma palavra de cautela sobre tentar se preocupar com esse tipo de otimizações prematuras de desempenho. Talvez começar com um banco de dados relacional tradicional (como o MySQL) no mesmo servidor que o seu servidor web. Assim que chegares ao ponto em que tens tráfego suficiente para onde precisas para separar a base de dados em um servidor diferente (para alocar mais recursos para a base de dados ou a aplicação web, ou para ser capaz de permitir vários servidores de aplicação web balanceados de carga falando para uma única base de dados de infra-estrutura), então você pode começar a se preocupar mais com esses tipos de ajustes de desempenho.
 0
Author: Mike Brant, 2013-01-22 19:04:11

SQlite não é serverless. Está bem documentado. PHP tem uma extensão para trabalhar com ele também. Mas se você realmente quer acelerar as coisas você deve olhar para o memcached, redis, MongoDB e tal.

 0
Author: uKolka, 2013-01-22 19:04:28

Parece que o que você está falando é simplesmente executar um servidor no mesmo computador onde o cliente está. É claro que isso é possível.

A vantagem é que ele ainda usaria SQL, e até mesmo protocolos de rede, mas ser auto contido no mesmo computador. Mais tarde, mudar para um ambiente de produção seria uma mudança de configuração mínima.

Ele não usaria realmente a rede, mas sim faria todas as chamadas de rede em memória. Isto funcionaria muito. rápido, e é um bom ambiente de desenvolvimento.

 0
Author: Marlin Pierce, 2013-01-22 19:18:52