使用mysql5.7新特性解决前通配符查询性能问题

在mysql里的后通配符可以使用索引查找,前通配查询却无法使用到索引,即使是使用到了索引,也是使用了索引全扫描,效率依然不高。
MySQL5.7之前,一直都没有好的办法解决,但是到了MySQL5.7,增加了虚拟列特性,以此用空间来兑换时间。

梳理一下流程

1、首先建立一张测试的表。

  1. CREATE TABLE `t_h_drug` (
  2. `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  3. `A014` varchar(200) DEFAULT NULL COMMENT '名称',
  4. ,
  5. PRIMARY KEY (`ID`) USING BTREE
  6. ) ENGINE=InnoDB AUTO_INCREMENT=121340200044000882 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='目录表'

2、插入数据,示例中数据量比较大。

插入数据过程不做赘述。当前表数据量50万+。
image.png

3、插入数据,示例中数据量比较大。