構造との相互参照目的で使用されるテーブルを設計しています。
id (BigInt) | cuid (Varchar(255)) | term (Varchar(255))
Web ページで、ユーザーが cuid または用語のいずれかを入力すると、プログラムは対応する ID を調べて、プログラム内で内部的に使用します。データベースには合計 2,669,793 のエントリがあります (したがって、id は 0 ~ 2669792 の範囲になります)。
これはかなり遅いと思います。ルックアップを可能な限り高速にするには、どのようなテクニックを使用すればよいですか? クエリはSELECT id WHERE cuid = ?
またはのようになりSELECT id WHERE term = ?
ます。
WHERE 句で id 自体を検索していないため、インデックスを作成することでどのようなメリットがあるかわかりません (ただし、id は本質的にインデックスが作成されます)。1 つのテーブルを複数のテーブルに分割し、何らかのマージ操作を行うなどのことを聞いたことがあります。何かご意見は?ありがとう。