我有一张带有[日期]索引的表格。
[date]专栏:
'2015-01-05'
'2015-01-06'
and etc
我可以为功能索引创建新索引吗? 当我试图创建它时,我得到错误,例如:
create index date_y on table (year(date))
如果我可以,我们没有重新创建程序性能查询。
答案 0 :(得分:0)
是和否。不,您不能以这种方式在表达式上创建索引。但是,如果你碰巧有mysql v5.7.8或更新版本,那么你可以创建generated columns并且可以在它们上创建a secondary index(二级索引意味着生成的列不能是主键的一部分)
因此,将表达式创建为生成的列,然后在其上创建索引 - 如果您有mysql v5.7.8或更新版本。
答案 1 :(得分:0)
有一刻,我有:
date is created index on tableX
id is created index on tableX
id is created index on tableY
我的查询:
Select * from tableX as x left outer join tableY as y on x.id=y.id
where year(x.date)=2015 and month(x.date)=11
我应该重新创建日期:
create index date on tableX (date,id)
还是其他什么?