Wat is die beste praktyk vir die berging van groot hoeveelhede teks (in 'n DB of as 'n lêer?), En wat oor comprimeren dit?

StackOverflow https://stackoverflow.com/questions/504544

Vra

Ek is die bou van 'n web-app wat interne e-posse en ander gereelde klein-tot-medium grootte stukke teks tussen gebruikers en kliënte hanteer. Wat is die beste metode vir die stoor van hierdie data? In 'n databasis (MySQL) of as duisende individuele lêers? Wat van die comprimeren dit (PHP se gzcompress () of MySQL se kompressie funksies)?

Dit sal nie 'n openbare aansoek wees, sodat die gebruiker vrag minimale (minder as 20 gebruikers op 'n slag) sal wees. Maar daar sal 'n baie van kommunikasie gaan elke dag binne die app terug-en-weer, so ek verwag dat die bedrag van data om te groei nogal groot soos die tyd aanstap (wat is die rede waarom ek wil dit compress).

Ek wil graag die data in 'n databasis vir maklike toegang en port hou, maar 'n paar van die drade wat ek hier met betrekking tot beelde gesien het voorgestel met behulp van lêer stoor. Wat dink jy?

Dankie, Seth

Edit om duidelikheid te verkry. Ek het nie enige vorm van soek van die teks, wat is die rede waarom ek sou leun die rigting van die comprimeren dit om te bespaar op die ruimte vereis

Was dit nuttig?

Oplossing

Vir foto's en dokumente wat reeds in 'n spesifieke formaat is (Excel, Word dokumente, PDF-lêers, ens) Ek verkies lêer stoor. Maar vir net rou teks ek sou waarskynlik eerder gebruik van 'n databasis. Dit is makliker om te herhaal oor masjiene vir fail, kan jy substring soektogte doen oor die teks en alhoewel ek weet nie van 'n spesifieke algoritme te gebruik om dit te compress, sou ek dink dat 'n databasis 'n beter manier om te gaan sou wees. Maar net as jy reeds net die teks en dit is net teks. Enige ander formaat dokument sou ek verkies die gebruik van lêer stoor.

En as ek iets ontbreek sou ek 'n CLOB gebruik in plaas van 'n BLOB, al is dit net teks.

Ander wenke

Een van die vernaamste redes vir die behoud van die lêers in 'n databasis is om dit in ooreenstemming met die res van die data wat jy stoor hou. Dit sal makliker wees om te maak backups, (her) ontplooi met gedefinieerde datastelle ens Verder is dit makliker om transaksionele integriteit te waarborg.

Een van die voordele van teks stoor as lêers kan wees dat dit makliker is om hulle te dien met behulp van 'n webbediener, indien dit die enigste oorblywende voordeel van die gebruik van lêers wat jy kan kyk na caching die lêers op die webbediener - wat sal gee jy baie van die maklike Friends en transaksies van die databasis, maar op dieselfde tyd toelaat sommige speedup vir http versoeke.

Ek sou verkies het om 'n DB gebruik. Jy beskryf 'n scenario waar jy gaan 'n groot hoeveelheid van boodskappe op te slaan. Jy hoef nie te voorsien veel inligting oor die stelsel, maar ek sou raai dat jy waarskynlik wil sorteer, groep en 'n hele paar ander eiendomme van toepassing is op die boodskappe. Dit sou baie makliker en waarskynlik vinniger wees om die boodskap met sy eienskappe in 'n DB in plaas van die gebruik van lêer stoor hou.

Wanneer dit kom by die kompressie Ek weet nie watter een van die metodes is die mees doeltreffende. Jy moet seker probeer beide voor die keuse van.

Ek wonder hoe groot is hierdie "medium stuk". As die teks net boodskappe is geskryf (so min as 10 KB), dan comprimeren maak hulle nog kleiner en daar sal nie 'n groot impak op die databasis groei wees. Dit maak die ontwikkeling en instandhouding ook baie makliker om alles beskikbaar met singl navraag het en nie met die dossier inhoud afsonderlik te kry.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top