2011-01-31 12 views
-1

私はBase64文字列に変換し、私は私のリモートデータベース、リモートのINSERTにアップロードするときに私は、5KBの画像を持っていますクエリは、ほんの数秒質問..

を必要としますが..私はBase64文字列に変換したとき、私は、100KBの画像を持っていると私は私のリモート・データベースにアップロードし、リモートのINSERTクエリが

を実行する秒の多くを必要とします

なぜですか?

Base64で文字列を非符号化された画像のような空間の100キロバイトを必要とするので、それはありますか?

これらの待ち時間を解決する方法はありますか?

詳細情報: mysqlリモートデータベースに接続するためにPHP + JSOnを使用しています。

オデッドは、Base64を使用していないし、BLOBはなくLONGTEXTを使用するように私を推薦し。 しかし.... JSON + PHPでBLOBを使うには?私が知っているようにJSON + PHPは、受信した文字列を送信する必要があり、それをを知らない、とBLOBは文字列ではありません

おかげ

をEDIT 2:

これはloootをとるコードであります時間待っている:

(それはラインで待機while ((line = reader.readLine()) != null) {、それはreader.readLine()上で待っている)、このコードがリモート・データベースからのユーザを取得する、それが私のアプリ

上のユーザーを表示するには、時間のlooooootを取ります210

答えて

2

画像を直接BLOBとして保存してみませんか?すべての変換が実現

は遅延や余分なCPU時間です。


更新:

今 BASE64が必要とされる理由を、我々は(JSONは、バイナリデータを転送することができないので)を知っていることを、私は私の答えを修正。

あなたは、これは長い時間がかかっている理由をチェックする必要があります。それはネットワーク転送ですか?それはデータベースですか?答えを知ったら、解決策を見ることができます。

+0

どうすればよいですか? BLOBは文字列を格納しますか? – NullPointerException

+0

@ AndroidUser99 - いいえ.BLOBには、画像データなどの_binary_データが保存されます。どのデータベースを使用しているか教えてください。適切な方法を提案することができます。 – Oded

+0

は同じではありませんか?これを読んでください:10.4.3。 BLOBとTEXTタイプ BLOBは、可変量のデータを保持できるバイナリラージオブジェクトです。 4つのBLOBタイプは、TINYBLOB、BLOB、MEDIUMBLOB、およびLONGBLOBです。これらは、保持できる値の最大長だけが異なります。 4つのTEXTタイプは、TINYTEXT、TEXT、MEDIUMTEXT、およびLONGTEXTです。これらは4つのBLOBタイプに対応し、同じ最大長とストレージ要件を持ちます。第10.5項「データ型記憶域要件」を参照してください。 – NullPointerException

1

Base64は6ビットエンコーディングです。イメージの3バイトを送信するには4文字(4バイト)が必要です。したがって、Base64に100kbイメージを格納すると、133kb相当のスペースが必要になります。

使用しているデータベースについては言及していませんが、1行に8kb以上を保存するとすべてのデータベースがうまく機能するわけではありません。

+0

私はMYSQLとSQLiteを使用しています – NullPointerException