我有两张桌子,让他们成为数据和 newdata 。我的查询应选择 data 中的所有行,其中double类型的 price 小于 newdata <中的另一个双字段价格 / em>的。表中的每一行都由其主键 articleno 标识。
我这样做的查询看起来像这样(不是实际的查询,因为在实时场景中有更多列可供选择,但比较基本上是这样的):
SELECT
data.articleno,
data.articledesc
data.price
FROM
data,
newdata
WHERE
data.articleno = newdata.articleno
AND data.price < newdata.price
限制设置为10或小表,这可以正常工作。但我需要处理的表格大小可达120k行。我最后一次在包含50k行的两个表上运行此查询时,花了大约180秒来获取所有数据。
问题:如何加快速度?我想做一个JOIN,然后用比较做选择,但是这不应该更糟吗?并且:为什么这个比较慢?这是双重的,我应该使用浮点数(如果更快)?
顺便说一下,需要使用MySQL 5.1。