MySQL - 在MySQL中查询大表 -

时间:2014-07-01 08:32:03

标签: mysql performance join

这肯定看起来像是大学主页的糟糕设计。

CREATE TABLE `college_majors` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date_time` datetime DEFAULT NULL,
  `UNITID` varchar(255) DEFAULT NULL,
  `CIPCODE` varchar(255) DEFAULT NULL,
  `AWLEVEL` varchar(255) DEFAULT NULL,
  `CTOTALT` varchar(255) DEFAULT NULL,
  `CTOTALM` varchar(255) DEFAULT NULL,
  `CTOTALW` varchar(255) DEFAULT NULL,
  `CAIANT` varchar(255) DEFAULT NULL,
  `CASIAT` varchar(255) DEFAULT NULL,
  `CBKAAT` varchar(255) DEFAULT NULL,
  `CHISPT` varchar(255) DEFAULT NULL,
  `CNHPIT` varchar(255) DEFAULT NULL,
  `CWHITT` varchar(255) DEFAULT NULL,
  `C2MORT` varchar(255) DEFAULT NULL,
  `CUNKNT` varchar(255) DEFAULT NULL,
  `CNRALT` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=270167 DEFAULT CHARSET=utf8;

我可以将此表减少到三列 - id,CIPCODE和UNITID。但问题是甚至像* select * FROM college_majors *这样的简单查询执行时间太长而有时甚至都没有执行。

我将查询执行时间增加到6000.00秒,但查询仍然无法运行。

关于如何改进设计,创建新表并插入此表中数据的任何建议(college_majors)。

谢谢, 甲

1 个答案:

答案 0 :(得分:0)

如果字段'代码值'在college_majors_mapping是唯一的,你可以索引它并提高连接性能。