MySQL ja binääridata

Voiko, ja kannattaako, MySQL-tietokantaan tallentaa binääridataa ilman, että suorituskyky kärsii dramaattisesti?

Ajatuksena olisi, mikäli mahdollista, tallentaa Word-asiakirjoja MySQL-kantaan.
8859
Äänestä

Muut lukivat myös

Vastaukset 8

Vanhimmat

En oikein näitä asioita ymmärrä mutta jotenkin tuntuisi järkevämmältä tallentaa asiakirjojen paikka eli polku kyseiseen tiedostoon niin ei hukkaannu levytilaa.

Äänestä
  • "jotenkin tuntuisi järkevämmältä tallentaa asiakirjojen paikka eli polku kyseiseen tiedostoon niin ei hukkaannu levytilaa"

    Kerrohan toki mihkä sitä levytilaa hukkaantuu jos tietokantaan tallentaa?

    Jokatapauksessa sinun on tallennettava tiedosto palvelimelle, ei sillä ole suurtakaan merkitystä (käytännössä ei yhtään mitään) levytilan kannalta onko tiedosto tietokannassa vai ei.

    Se että kannattaako tiedosto tallentaa tietokantaan riippuu monista asioista, eritoten tietokantapalvelimen tehokkuudesta ja käyttöasteesta. Yleensä noissa perus webhotelleissa on tietokantapalvelimilla liikaa käyttäjiä joten tietokannasta kannattaa hakea mahdollisimman vähän dataa. Mutta jos on oma palvelin jne... niin silloin tietokantaan tiedostot on yleensä nopeampi, riippuen toki tietokannasta. Ja kun tiedostot on tietokannassa niin niihin voi tehdä helposti hakuja.

    Äänestä

  • Rerrerer kirjoitti:

    "jotenkin tuntuisi järkevämmältä tallentaa asiakirjojen paikka eli polku kyseiseen tiedostoon niin ei hukkaannu levytilaa"

    Kerrohan toki mihkä sitä levytilaa hukkaantuu jos tietokantaan tallentaa?

    Jokatapauksessa sinun on tallennettava tiedosto palvelimelle, ei sillä ole suurtakaan merkitystä (käytännössä ei yhtään mitään) levytilan kannalta onko tiedosto tietokannassa vai ei.

    Se että kannattaako tiedosto tallentaa tietokantaan riippuu monista asioista, eritoten tietokantapalvelimen tehokkuudesta ja käyttöasteesta. Yleensä noissa perus webhotelleissa on tietokantapalvelimilla liikaa käyttäjiä joten tietokannasta kannattaa hakea mahdollisimman vähän dataa. Mutta jos on oma palvelin jne... niin silloin tietokantaan tiedostot on yleensä nopeampi, riippuen toki tietokannasta. Ja kun tiedostot on tietokannassa niin niihin voi tehdä helposti hakuja.

    >...mihkä sitä levytilaa hukkaantuu...

    Olen kyllä hieman yksinkertainen ihminen mutta mielestäni Ojalan laskuopin mukaan levytilaa kuluu noin kaksinkertainen määrä jos samainen tiedosto on sekä Wordin asiakirjana että binäärinä kannassa kuten alkuperäinen kysyjä kai tarkoitti.

    Äänestä

  • olis kirjoitti:

    >...mihkä sitä levytilaa hukkaantuu...

    Olen kyllä hieman yksinkertainen ihminen mutta mielestäni Ojalan laskuopin mukaan levytilaa kuluu noin kaksinkertainen määrä jos samainen tiedosto on sekä Wordin asiakirjana että binäärinä kannassa kuten alkuperäinen kysyjä kai tarkoitti.

    "Olen kyllä hieman yksinkertainen ihminen mutta mielestäni Ojalan laskuopin mukaan levytilaa kuluu noin kaksinkertainen määrä jos samainen tiedosto on sekä Wordin asiakirjana että binäärinä kannassa kuten alkuperäinen kysyjä kai tarkoitti."

    Mutta tuolloinhan sinulla on palvelimella kaksi identtistä tiedostoa, ja sehän ei ole järkevää tässä tapauksessa.

    Yksinkertaistettuna Wordin asiakirja on binäärimuotoista dataa jonka sitten Word muuttaa tekstiksi jne... Normaalisti tuo binääridata on tiedostona, mutta nyt tuo data laitetaan tietokantaan.

    Kun binääridata tietokannasta noudetaan niin otsikkotiedoilla kerrotaan, että kyseessä on Wordin asiakirja jolloin sen voi joko tallentaa koneelle Wordin asiakirjana tai avata Wordilla. Sivuilla kävijähän ei huomaa mitään eroa noiden tapojen välillä.

    Äänestä

  • Lähinnä sen takia haluaisin tallentaa tietokantaan, kun verkkoliikenteen toimivuuden kannalta on käsittääkseni turvallisempaa ja toimivampaa siirtää dataa MySQL:n käyttämällä protokollalla, kuin perustaa levyjako ja käyttää aikansa elänyttä ja useita portteja käyttävää Microsoftin SMB-protokollaa.

    Tietokantaratkaisu mahdollistaisi myös datan siirron kryptattuna.

    Muutenkin tietokantaratkaisun etuna voisi olla parempi tietoturva. On olemassa viruksia (esim. SirCam), jotka ottavat satunnaisen asiakirjan tietokoneelta ja lähettelevät sitä maailmalle. Tietokantaratkaisussa ainakaan tätä riskiä ei olisi (tietokantapalvelin voi tietysti olla muulla tapaa haavoittuva).

    Äänestä

  • Rerrerer kirjoitti:

    "Olen kyllä hieman yksinkertainen ihminen mutta mielestäni Ojalan laskuopin mukaan levytilaa kuluu noin kaksinkertainen määrä jos samainen tiedosto on sekä Wordin asiakirjana että binäärinä kannassa kuten alkuperäinen kysyjä kai tarkoitti."

    Mutta tuolloinhan sinulla on palvelimella kaksi identtistä tiedostoa, ja sehän ei ole järkevää tässä tapauksessa.

    Yksinkertaistettuna Wordin asiakirja on binäärimuotoista dataa jonka sitten Word muuttaa tekstiksi jne... Normaalisti tuo binääridata on tiedostona, mutta nyt tuo data laitetaan tietokantaan.

    Kun binääridata tietokannasta noudetaan niin otsikkotiedoilla kerrotaan, että kyseessä on Wordin asiakirja jolloin sen voi joko tallentaa koneelle Wordin asiakirjana tai avata Wordilla. Sivuilla kävijähän ei huomaa mitään eroa noiden tapojen välillä.

    Eli sinäkin asiantuntijana päädyit täsmälleen samaan lopputulokseen kuin minä maallikkona. Siis että kantaan tallennetaan pelkkä linkki tiedoston sijainnista. :)

    Äänestä

Tallenna dokkarit BLOB:ina (Binary Large Object)
Se sitten pitäisikö tiedostot olla levyllä on vaiko kannassa on vähän maku asia. Ei mielstäni huono vaikka on kannassa. Yhdistyy esim. käyttäjään helposti.

Äänestä
  • "Se sitten pitäisikö tiedostot olla levyllä on vaiko kannassa on vähän maku asia."

    Tietokantasuunnittelussa on paljon asioita jotka ovat olevinaan makuasioita. Samasta syystä toiset tietokannat ovat nopeita ja toiset hitaita.

    Ensinnäkin olennainen kysymys on se, paljonko näitä dokumenttejä syntyy eli paljonko dataa kaikkiaan esimerkiksi viiden vuoden tähtäimellä kertyy? Miten tietokannan varmuuskopiointi on hoidettu, online vai offline? Onko palvelin klusteroitu ja jos on, miten klusterin toinen puolisko pitää standby-tietokannan eheänä? Onko firmassa työntekijöitä joilla on joskus tarve ottaa dokumenttejä myös mukaansa esimerkiksi työskennellessään toimiston ulkopuolella? Liittyykö dokumentteihin myös versiohallintaa? Millaiset hakutoiminnot tietokantaan liittyvät ja miten nopeita niiden tulee olla? Onko ihan varma että prosessissa syntyy vain ja ainoastaan Word -dokumentteja?

    Isoihin tietokantoihin liittyy paljon ns. salattua tietoa. Vaikka speksissä mainostettaisiin että tietokantamoottori pystyy käsittelemään teratavujen tietokantoja käytännössä tuo saattaa edellyttää melkoisia temppuja. Myös se miten tietokantamoottori sijoittelee BLOBit ja miten query optimizer ja muut osaset kokonaisuutta tämän jälkeen hallitsevat voi tuoda mutkia matkaan. Yhtenä pienenä nyanssina kuviossa on myös se, että tietokannan hakunopeudet ovat parhaimmillaan silloin, kun koko tietokanta mahtuu palvelimen muistiin. Tämä oli joskus jopa jonkin sortin nyrkkisääntö tietokantapalvelimen rautaspeksille.

    Ehkä tässä siis ollaan lopultakin lähellä sitä perinteistä järjestelmäkehityksen miinaa: se että jokin on mahdollista ei tarkoita sitä, että niin kannattaisi tehdä. Kun kuulostaa siltä että firmassa tehdään omin voimin dokumentinhallintaa ja dbms on juuri mySQL se jo herättää joitain kysymyksiä. Ehkä kaikkein ensimmäisenä kannattaisi kuitenkin tehdä kunnollinen rekspekki, jossa aidosti käydään läpi dokumenttien käyttöön liittyvät käyttötapaukset.

    Äänestä

Kommentoi aloitusta


Aloittelijan kysymys kirjoitti:

Voiko, ja kannattaako, MySQL-tietokantaan tallentaa binääridataa ilman, että suorituskyky kärsii dramaattisesti?

Ajatuksena olisi, mikäli mahdollista, tallentaa Word-asiakirjoja MySQL-kantaan.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu