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', 'effective_date', 'ref', 'PRIMARY,year_month_number', 'year_month_number', '22', 'const', '29', '使用 where'

看起来像key_len = 22,谁能解释为什么它不是 7(如这篇文章中所建议的那样)?我尝试删除并重新创建索引,

4

1 回答 1

1

不知道为什么它显示 22,可能是一些编码问题 - 它是 char(7) 二进制文件吗?

无论如何 - 将字段更改为通常的 int,您将在其中将 YYYYMM 存储为数字,这将只有 4 个字节

于 2013-10-14T09:04:00.830 回答