在oracle中,我们可以这样做:
CREATE INDEX idx_1 ON table_1 ( func_1(col_1), func_2(col_2), func_3(col_3) );
但是,我们不能在mysql中这样做。
我认为支持功能索引并不是很复杂。
我想知道为什么mysql不支持它。有谁知道原因?
答案 0 :(得分:1)
此功能请求过去已于2004年左右完成。请参阅Bug #4990 Functional Indexes。
我很高兴你认为这并不复杂。 MySQL是开源的,他们是welcome external contributions。因此,您可以随时编写此简单功能的代码,并将修补程序附加到该错误日志中。
未完成的原因与任何项目中是否完成每项功能的原因相同: 开发人员最好地判断哪些功能或改进将使最大数量的用户受益,并且他们优先考虑这些功能。
过去5到8年在MySQL和InnoDB中完成的许多核心开发都侧重于多核处理器架构的可扩展性,这被认为对MySQL的所有用户都有很大的好处,并且MySQL曾经比现在弱得多。