MySQL 虚拟列和虚拟索引 | 您所在的位置:网站首页 › mysql建立函数索引 › MySQL 虚拟列和虚拟索引 |
MySQL 虚拟列和虚拟索引
是什么 Mysql 5.7 中推出了一个非常实用的功能 虚拟列 Generated (Virtual) Columns 在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。 如果需要Stored Generated Golumn的话,可能在Virtual Generated Column上建立索引更加合适 综上,一般情况下,都使用Virtual Generated Column,这也是MySQL默认的方式 能干嘛 能对 where 条件 上使用函数等原因使索引失效 如使用函数 就可以对这个 字段和函数建立一个虚拟类和虚拟索引提高效率 怎么用 比如是 sys_user 表中 create_time 结果 执行计划 建立一个虚拟列 新建一个虚拟索引 结果 执行计划 虚拟列不存储在数据行中,但虚拟列的元数据信息会存在于相关系统表中,对虚拟列的添加或者删除只会涉及这些系统表,不会导致数据表的重建,所以效率很高 |
CopyRight 2018-2019 实验室设备网 版权所有 |