1
私は、「テキスト」列フィールドのフィルターを使用して大量の表(行数)から大量の表(行数)を取得する必要があります。問題は、このテーブルの単純なクエリに続く通常の反復ではタイムアウトです。非常に大きなMysql DBから「テキスト」列フィールドを取得しています
select * from st_overflow_tbl where uniue_txt_id = '123456'
私はexplainコマンドを実行し、unique_txt_idに索引がないことを確認しました。以下の出力。
"id","select_type","table","type","possible_keys","key","key_len","ref","rows","Extra"
1,"SIMPLE","st_overflow_tbl","ALL",NULL,NULL,NULL,NULL,12063881,"Using where"
I、そして、このテーブルのインデックスを作成しようとしましたが、それは次のエラーメッセージで失敗している - 私は実行していた
BLOB/TEXT column 'uniue_txt_id' used in key specification without a key length
コマンドはこれです -
alter table st_overflow_tbl add index uti_idx (uniue_txt_id)
付き私が持っている上記の質問に記載されているシナリオ -
- に非常に大きなテーブルで 'テキスト'フィールドを検索している場所にデータをフェッチする(テーブルにインデックスを作成するよりも)良い方法はありますか?
- このテーブルにインデックスを作成するにはどうすればよいですか?私は何を間違っているのですか?
- 私の用途にもっと特定してください。私はこのテーブルのインデックスを作成することはできません。それでも私は同じ選択クエリ(上記)でこのテーブルから高速にデータをフェッチできますか?
unique_txt_id
フィールドは常に数値になります(これは今までです)。
インデックス登録クエリの問題を解決するのに役立ちましたので、回答を受け入れてください。しかし、今問題は、この索引付けの問合せがタイムアウトしたことです。私はUIツール、そのシンプルな端末を使用していません。どのように私は確認することができます、サーバーは接続をリセットしないでください?私はSQL Serverにアクセスできません。 –
@ManishShukla。 。 。テーブルの大きさはどれくらいですか? –
約500万エントリ。 (説明コマンドで12063881という数字になりません。実数が変更されました。) –