Autor Zpráva
Morous70
Profil *
Jak mám dále upravit řetězec $vystup, abych jej mohl uložit do MySQL? Použití addshlases, mysql_real_escape_string apod. naruší data, které pak nejdou dekomprimovat.

$r = array();
$vystup = gzcompress(serialize($r));
Kajman
Profil
Po připojení k serveru by mělo být ošetření komprimovaných dat díky mysql_real_escape_string korektní.
Joker
Profil
Morous70:
Jaký datový typ pro uložení těch dat používáte? Není problém spíš v tom?
(např. že to ukládáte jako VARCHAR a rozhodí se to kvůli kódování. Tohle by se asi mělo ukládat jako BLOB.)
Morous70
Profil
Datový typ používám BLOB. Vše již začalo fungovat. Asi jsem v průběhu dělal nějakou chybu v zápise. Nyní používám funkční:

$r = array();
$vystup = mysql_real_escape_string(gzcompress(serialize($r),9));

Děkuji za pomoc.

A jen dotaz bokem. Jakou máte zkušenost s používáním komprese implementovanou v MySQL? Zjistil jsem, že účinnost je nižší než u gzcompress() či bzcompress(). Ale co zatížení procesoru a čas zpracování?

INSERT INTO tabulka (data) VALUES (COMPRESS(string));
SELECT UNCOMPRESS(string) AS data FROM tabulka;
Kajman
Profil
Často bývají levnější datové prostory než procesorový čas. Dokud si neotestujete a nepotvrdíte na očekávaných datech a očekávaném provozu skutečný přínos používání komprimovaných dat, tak bych se jim vyhnul.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: