4

多くの検索クエリを必要とするモバイル サービスを構築しています。

このサービスは MySQL データ システムに基づいており、高速な検索サービスを作成するには検索クエリだけでは不十分です。

したがって、逆索引付けシステムを使用することにしました。

index    Documents
1        a, b, c, d, e, f, g, h
2        c, k, i, j, k

これは、逆インデックス システムの簡単な構成です。

1 行に 1000 個以上のドキュメントがあると想定しています。

「ドキュメント」列にどのタイプと長さを使用すればよいかわかりません。

今のところ VARCHAR(100000) を選択しました。長さを9999999のように設定することはできますか?

4

2 に答える 2

10
  1. データ構造:

    index document
      1      a
      1      b
      1      c
     ...
      2      c
      2      k
    

    indexタイプINTdocumentタイプCHAR(1)indexとのセットとしての主キーdocument

    このデータ構造を使用すると、クエリは非常に高速に実行されます。
    ちなみに、私が提案する構造は正規化されています。

  2. MySQL 5.0 リファレンス マニュアル ( The CHARand VARCHARTypes ) から:

[...] VARCHAR[...] 長さは、MySQL 5.0.3 より前では 0 から 255、5.0.3 以降では 0 から 65,535 の値として指定できます。

于 2012-05-15T20:04:06.560 に答える
1

IMHO、これは醜くなりますが、そうは言っても、varchar サイズでカバーされるか、TEXT、mediumTEXT、または longTEXT を調べることができます。

TEXT    65,535 bytes    ~64kb
MEDIUMTEXT   16,777,215 bytes   ~16MB
LONGTEXT    4,294,967,295 bytes ~4GB
于 2012-05-15T19:57:55.020 に答える