【发布时间】:2011-05-14 20:03:55
【问题描述】:
我有如下表结构
term_id int(11)
concept_id int(11)
idf double
我有大约 240 万条记录。当我执行以下查询时
stmt = con.prepareStatement("SELECT term, idf.idf FROM idf "
+ "JOIN term ON term.id=idf.term_id "
+ "WHERE concept_id= ?");
stmt.setInt(1, id);
res = stmt.executeQuery();
查询大约需要 3 秒。我正在使用 MySQL 连接器,并且正在从 java 代码/eclipse 执行此查询。
我可以提高这个速度吗?
如果尝试直接在 phpMyAdmin 中执行查询,我会得到以下时间结果:
总共记录 18,869 条时间:0.4204 秒
SELECT term, idf.idf
FROM idf
JOIN term ON term.id = idf.term_id
WHERE concept_id = 4
【问题讨论】:
-
term_id 和 concept_id 是否被索引?
-
Java 应用程序和 MySQL 是否在同一台机器上运行?您如何衡量应用程序中的查询执行时间?
-
没有没有索引。 System.currentTimeMillis() 我用于那个
-
是的,是同一台机器。我在笔记本电脑上运行它
-
嘿,在 phpMyAdmin 中建立索引后,现在以下是 nr 记录的结果:18,869 次:0.1288 秒,这是一个相当大的改进仍然在 eclipse 中,我的查询时间约为 3 秒。我不明白:(
标签: mysql performance