有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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内存。请建议


共 (2) 个答案

  1. # 1 楼答案

    在两个表之间执行内部联接时,每个表包含10000行。它必须经过10000*10000行(如果列没有索引)。如果你想让他们快一点,你必须给表格编制索引。SIM1和TableB。SIM2。这将缩短查询执行时间

    要编制索引,请使用以下命令

    create index on TableA (SIM1);
    create index on TableB (SIM2);
    
  2. # 2 楼答案

    你在TableA上设置了索引吗。SIM1和TableB。SIM2