今天遇到了一个很离奇的事情,早上过来有同事说某个查询没有结果了。我心里一想我没有动查询SQL啊,不应该的啊。然后细想下昨天动了些东西。其中有重写另一个查询的SQL,打开了MYSQL默认关闭的BKA关联算法。昨天还沾沾自喜呢,一定有不少线上关联查询应该有快一些了。谁知道他么早上一来就遇到这种奇怪的事情。
下面将场景还原:
mysql> select version();
+------------+
| version() |
+------------+
| 5.7.25-log |
+------------+
CREATE TABLE `a` (
`c1` varchar(16) DEFAULT NULL,
`c2` int(11) DEFAULT NULL,
`c3` int(11) GENERATED ALWAYS AS ((`c2` + 1)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `a` */
insert into `a`(`c1`,`c2`) values ('bc',1);
/*Table structure for table `b` */
CREATE TABLE `b` (
`c1` varchar(16) DEFAULT NULL,
`c2` int(11) DEFAULT NULL,
`c3` int(11) DEFAULT NULL,
key `c1` (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf