0

serializedmysql にデータを保存していますが、どのフィールド タイプを選択すればよいかわかりません。

シリアル化されたデータ出力の一例を以下に示します。

string(393) "a:3:{s:4:"name";s:22:"PACMAN-Appstap.net.rar";s:8:"trackers";a:6:{i:0;s:30:"http://tracker.ccc.de/announce";i:1;s:42:"http://tracker.openbittorrent.com/announce";i:2;s:36:"http://tracker.publicbt.com/announce";i:3;s:23:"udp://tracker.ccc.se:80";i:4;s:35:"udp://tracker.openbittorrent.com:80";i:5;s:29:"udp://tracker.publicbt.com:80";}s:5:"files";a:1:{s:22:"PACMAN-Appstap.net.rar";i:4147632;}}"

データの文字列の長さは、最大約 20,000 文字まで大きく異なります。

TEXT使用する必要がある文字セットが原因でデータが破損する可能性があるため、データ型を使用したくないことを理解しています。

VARBINARYBLOBMEDIUMBLOBなどのいずれかを使用するようになると、私は立ち往生しています。

私が使用する場合、これは長さVARBINARY(20000)の文字列を安全に挿入できることを意味し20000、それが終わった場合は挿入を破棄しますか?

4

1 に答える 1

0

を使用する必要があるという点で PLB に同意しますBLOB。length 属性は、この列に保存できるバイト数を指定します。との主な違いは、BLOB未使用のスペースがパディングで埋められるのに対し、データの実際の長さだけが 1 つのフィールドに予約されることです。 しかし、PLB が言ったように、これは絶対に必要な場合にのみ使用してください。ほとんどの場合、DB 全体の速度が低下するためです。より良い解決策は、ファイルをサーバーのファイルシステムに保存し、ファイルのパスを DB に保存することです。VARBINARYVARBINARYBLOB

于 2012-05-27T14:59:03.637 に答える