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,加快效率。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章