2012-02-01 6 views
2

私はmysqlデータベース内の特定のdivの内容をhtml要素として保存しています。効率的にMySQLデータベースに格納するデータを削減する方法はあり効率的なhtml要素をSQLに格納する

<div id="div0" class="box" style="z-index: 2; width: 1689px; height: 1013px;"> 
    <img style="margin: 0px; position: relative; display: block; height: 550px; width: 638px; top: 0px; left: 0px;"> 
</div> 

: だからHTML要素の内容は、次のような多くの要素を含んでいます。

dbに保存する前に圧縮する任意のphp関数やjavascript関数など。

+1

はあなたがそれを圧縮するために探している理由はありますか?ストレージやパフォーマンスに問題がありますか? – Fosco

+0

@Fosco:たぶん彼は*本当に大きな断片を格納しているかもしれません:-) –

+0

文字列を 'base64_encode()'して少し圧縮することができます。それは長さには違いがありません。 –

答えて

3

あなたはgzcompress()/gzuncompress() PHPの関数を使用してデータベースに保存する前に、文字列を圧縮することができたり、あなたのクエリでCOMPRESS()/UNCOMPRESS()を使用してMySQLでそれを行うことができます - しかし、あなたは非常に多くのデータを持っていない限り、私はこれをお勧めしません。

あなたは、いくつかのハードディスクのスペースを獲得していますが、透明性の多くを失う(検索、編集、...、移行、変換)

+1

DBフィールドのBLOBデータ型とともにgzcompressを使用しました。 [詳細](http://stackoverflow.com/questions/8516161/php-mysql-how-to-insert-a-gzcompress-ed-string-into- a-text-mysql-field) – joHN

5

なぜ圧縮するのですか?ディスク容量は安く、圧縮形式(gzipなど)で保存すると、毎回圧縮解除/再圧縮するCPU時間がかかります。

また、データを圧縮すると、DBへの不透明なバイナリBLOBになり、substring/fulltextでそのテキストを検索する能力が失われます。