2016-06-28 9 views
1

私のテーブルにURLを格納する必要があります。問題は、私は知らないし、その長さを仮定することはできません。MYSQL - 未知のURLをホストする際にどのような変数タイプを選択する必要がありますか?

私は変数のどのタイプの私が使用する必要があります知っていただきたいと思います(私はおよそTEXTを考えていた誰かが狂っ-長いURLを提出することができますので、私はよく分からない - 彼らはカットを取得してはならない)

感謝を!

+0

は、sequenceIDを使用してvarchar(2000)として格納し、2000文字を超える場合は複数の行を持ちます。後で再び一緒に参加してください。そうすれば、必要に応じて無限のサイズにすることができます。あなたが必要に応じて行を追加するだけで、それが狂った長いURLであれば、スペースを使い果たす危険はありません。2000文字チャンクに分割してください。 – xQbert

答えて

0

最新バージョンのMySQLは非常に長い文字列をサポートしていますので、VARCHAR(2048)などの文字列を使用するか、フィールドを使用してください。

URLを比較的短くする伝統的な理由がありますが、1500文字未満の伝統がありますが、一部のサイトがこれを大きく超えていることは珍しくありません。つまり、64Kで十分であり、それより長いものは重大な外れ値です。

+0

「TEXT」フィールドを使用していて、「google.com」という文字列が2つあり、非常に長い文字列の場合は、そのタイプのために同じ容量のストレージを使用するか、ストレージは文字列の長さ? –

+2

@ItayGanor 'VARCHAR'は、列定義で指定された全長ではなく、必要なだけをとります。それは 'CHAR'との主な違いです。 (ただし、MyISAMエンジンを使用してテーブルを操作する場合、このダイナミックサイジングによりテーブルを少し遅くすることができます)。 – Uueerdo

+1

@Uueerdo MyISAMを新しいデータベースに使用しないでください。これは、レガシーサポートのためだけに存在するひどくぎこちないエンジンです。 – tadman

関連する問題