在 oracle 中,我们可以这样做:
CREATE INDEX idx_1 ON table_1 ( func_1(col_1), func_2(col_2), func_3(col_3) );
但是,我们不能在 mysql 中执行此操作。
我认为支持功能索引并不是很复杂。
我想知道为什么mysql不支持它。有谁知道原因?
在 oracle 中,我们可以这样做:
CREATE INDEX idx_1 ON table_1 ( func_1(col_1), func_2(col_2), func_3(col_3) );
但是,我们不能在 mysql 中执行此操作。
我认为支持功能索引并不是很复杂。
我想知道为什么mysql不支持它。有谁知道原因?
此功能请求已在过去提出,大约在 2004 年。请参阅错误 #4990 功能索引。
我很高兴你认为这并不复杂。MySQL 是开源的,他们欢迎外部贡献。因此,您总是可以编写这个简单的功能并将您的补丁附加到该错误日志中。
它没有完成的原因与任何项目中每个功能都完成或未完成的原因相同:开发人员做出最佳判断,哪些功能或改进将使他们的用户受益最多,并优先考虑这些。
MySQL 和 InnoDB 在过去 5-8 年中所做的许多核心开发都集中在多核处理器架构的可扩展性上,这被认为对 MySQL 的所有用户都有很大的好处,也是 MySQL 曾经的一个领域比现在弱很多。