相关疑难解决方法(0)

MySQL优化庞大的表

我一直试图在某个SELECT查询上获得一些速度提升.情况如下:(在我看来)有一个巨大的交叉桌.它目前有大约2000万行,但我预计这会增长很多.根据这个交叉表,我需要创建另一个表.为此,我需要执行以下查询:

SELECT hugeCrossingTable.field3, otherTable.field1, hugeCrossingTable.field2 * otherTable.field3 AS someName
FROM hugeCrossingTable 
INNER JOIN otherTable ON hugeCrossingTable.field1 = otherTable.field2
Run Code Online (Sandbox Code Playgroud)

现在这导致大约一百万行.我已经在2个表中的field1上都有索引,但它仍然需要18分钟才能完成..我考虑拆分表,但后来我需要找到一种方法来分析数据,因为它是只是一个交叉表没有想到如何做到这一点.

关于如何优化这一点的任何想法?

谢谢.

根据要求,这里是create语句:

CREATE TABLE  `hugeCrossingTable` (
  `field` int(11) NOT NULL,
  `field1` int(11) NOT NULL,
  `field2` double(10,5) DEFAULT NULL,
  `field3` int(4) DEFAULT NULL,
  KEY `field1` (`field1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE  `otherTable` (
  `field` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `field1` int(10) unsigned NOT NULL,
  `field2` int(10) unsigned NOT NULL,
  `field3` decimal(5,2) NOT NULL,
  PRIMARY KEY (`field`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql optimization

13
推荐指数
1
解决办法
4万
查看次数

标签 统计

mysql ×1

optimization ×1