MySQL 5.7新特性之Generated Column(函数索引)与 Oracle 的函数索引

本文介绍了MySQL 5.7中的Generated Column,包括Virtual与Stored Column的区别,以及在Generated Column上创建索引的实践。通过示例展示了Generated Column的使用,并对比了与Oracle函数索引的异同,强调了在MySQL中使用Generated Column的注意事项和限制。
摘要由CSDN通过智能技术生成

mysql不提供函数索引的创建,mysql5.7版本之后提供Generated Column类似的功能,如:
alter table RP_RONGHE_PROXY_OPR_MER_DETAIL add column substr_through_date varchar(8) generated always as (SUBSTR(THROUGH_DATE,0,8)) VIRTUAL; 在该字段上创建联合索引:
alter table RP_RONGHE_PROXY_OPR_MER_DETAIL add key IDX$RONGHE$DATE$status(substr_through_date,mcht_status);

MySQL 5.7引入了Generated Column,这篇文章简单地介绍了Generated Column的使用方法和注意事项,为读者了解MySQL 5.7提供一个快速的、完整的教程。这篇文章围绕以下几个问题展开: 

Generated Column是什么 
Virtual Column与Stored Column的区别 
如果我对Generated Column做一些破坏行为会怎么样 
Generated Column上创建索引 
Generated Column上创建索引与Oracle的函数索引的区别 

Generated Column是什么 

Generated Column是MySQL 5.7引入的新特性,所谓Cenerated Column,就是数据库中这一列由其他列计算而得,我们以官方参考手册中的例子予以说明。 


例如,知道直角三角形的两条直角边,要求斜边的长度。很明显,斜边的长度可以通过两条直角边计算而得,那么,这时候就可以在数据库中只存放直角边,斜边使用Generated Column,如下所示: 

CREATE TABLE triangle ( 
sidea DOUBLE, 
sideb DOUBLE, 
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))); 

INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8); 

查询结果: 

mysql> SELECT * FROM triangle; 
+-------+-------+--------------------+ 
| sidea | sideb | sidec | 
+-------+-------+---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值