我的sql输出中似乎有极慢的性能。 这是我用简单的INNER JOIN精简的sql语句。
我确实完成了任务,发送数据似乎是个难题。
SELECT c.prod_name, c.ean, s.ean
FROM catalogue c INNER JOIN
store s
ON c.ean = s.ean
WHERE MATCH(c.prod_name) AGAINST('+jumper' IN BOOLEAN MODE)
GROUP BY s.ean
LIMIT 100;
这里是EXPLAIN输出
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE s NULL index ean ean 32 NULL 100 100 Using index
1 SIMPLE c NULL fulltext ean,prod_name prod_name 0 const 1 10 Using where; Ft_hints: no_ranking
创建表目录:
CREATE TABLE `catalogue` (
`catalogue_id` int(11) NOT NULL AUTO_INCREMENT,
`prod_name` varchar(255) DEFAULT NULL,
`feature1` varchar(255) DEFAULT '',
`feature2` varchar(255) DEFAULT '',
`ean` varchar(20) DEFAULT NULL,
PRIMARY KEY (`catalogue_id`),
UNIQUE KEY `ean` (`ean`),
FULLTEXT KEY `prod_name` (`prod_name`)
) ENGINE=InnoDB AUTO_INCREMENT=3197133 DEFAULT CHARSET=utf8
创建表存储
CREATE TABLE `store` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`ean` varchar(30) CHARACTER SET latin1 NOT NULL DEFAULT '',
`salePrice` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '0',
`offerPrice` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '0',
PRIMARY KEY (`product_id`),
KEY `ean` (`ean`)
) ENGINE=InnoDB AUTO_INCREMENT=1835788 DEFAULT CHARSET=utf8
我希望通过EAN(英国/欧盟条形码)将两个表合并。目录表列出了超过340万种带有UNIQUE条码的产品。商店表具有每种产品的售价,因为我将由多个卖家/商店出售相同的产品。
我正在使用AWS RDS db.t2.small-1个vCPU-2GiB内存。
非常感谢。