java为什么mysql内部连接查询需要这么多时间
在mysql中,我有两个表
表
col1 col2 SIM1 ..........col24
-----------------------------------
a x 1 5
b y 1 3
c z 0 2
d g 2 1
表B
colA colB SIM2
-------------------
x g 1
y f 0
x s 0
y e 2
实际上,这两个表中的记录数为40万条
我有一个java程序,使用jdbc执行sql查询
以下是问题
SELECT *
FROM TableA
INNER JOIN TableB ON TableA.SIM1 = TableB.SIM2
INTO OUTFILE 'c:/test12226.csv' "+
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
这个查询需要很长时间。对于我的申请是可行的,这不应该超过30秒。据我所知,这些记录有40万条,但在ms access中这样的操作只需不到10秒。java mysql组合比ms access更耗时吗
我在调试配置中分配了1GB内存。请建议
# 1 楼答案
在两个表之间执行内部联接时,每个表包含10000行。它必须经过10000*10000行(如果列没有索引)。如果你想让他们快一点,你必须给表格编制索引。SIM1和TableB。SIM2。这将缩短查询执行时间
要编制索引,请使用以下命令
# 2 楼答案
你在TableA上设置了索引吗。SIM1和TableB。SIM2