MySQL GROUP BY优化 固定长度分组与非固定长度分组

MySQL对于定长的比较等运算速度远远大于对非定长的速度;

测试:

表结构:

CREATE TABLE `tb_num_addr_info` (
  `Number` char(16) DEFAULT NULL,
  `ProvName` char(64) DEFAULT NULL,
  `CityName` char(64) DEFAULT NULL,
  `CountName` char(64) DEFAULT NULL,
  `DistrictCode` char(8) DEFAULT NULL,
  KEY `Num` (`Number`),
  KEY `Code` (`DistrictCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `tb_stiffness_bmi_info` (
  `Stiffness` float DEFAULT NULL,
  `MachNumber` char(16) DEFAULT NULL,
  `Gender` char(8) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  `Height` int(11) DEFAULT NULL,
  `Weight` int(11) DEFAULT NULL,
  `BMI` float DEFAULT NULL,
  KEY `machkey` (`MachNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

数据量:

 

速度比较:

 很显然的速度比较,当group by province(left(ProvName,3))  定长为3,而下面这个直接是ProvName速度上慢了很多;

当数据量比较大的时候这种优化效果就非常明显,但是如果只是上千条数据,可能并没有什么明显的差距;写较好的SQL,加快效率。

猜你喜欢

转载自blog.csdn.net/QWERDF10010/article/details/81302155