0

次のように、インデックス付きの year_month_number という char(7) フィールドを持つ日付ディメンション テーブルがあります。

ALTER TABLE `dim_date` add INDEX `year_month_number` (`year_month_number` ASC);

「2013-06」や「2013-07」などのデータが含まれています。

私はパフォーマンスの問題を抱えているので、説明しました。

'1', 'SIMPLE', '発効日', 'ref', 'PRIMARY,year_month_number', 'year_month_number', '22', 'const', '29', 'Using where'

のように思えkey_len = 22ますが、7 ではない理由を誰か説明できますか (この投稿で提案されているように)。インデックスを削除して再作成しようとしましたが、

4

1 に答える 1

1

22 が表示される理由がわかりません。おそらく何らかのエンコーディングの問題です - char(7) バイナリですか?

とにかく - フィールドを通常の int に変更します。YYYYMM を数値として格納します。これはわずか 4 バイトになります。

于 2013-10-14T09:04:00.830 に答える