2

我是一个新手 MySQL 用户,所以真的可以在这里使用一些建议。我继承了一个程序,该程序当前处理由大约 100,000 条记录组成的文本文件。每一行都是它自己的记录并得到处理。像这样的文件可以在大约一分钟内完成,因为没有什么需要做的,主要是字符串比较。

无论如何,现在必须将一些 SQL 查询添加到流程中,而不会太慢。从本质上讲,这 100,000 行中的每一行现在都可能需要创建一个 SQL 选择语句来查询数据库并查看是否可以访问更多数据。我拼凑了一个粗略的开始,处理时间从一分钟到大约一个小时。绝对不能接受。我的问题是,有没有办法加快速度?(我确定有)

我只打开一个连接对象,但我看不到任何方法可以为每条记录进行单独的 SQL 查询。有没有办法批量选择语句?任何建议都会非常有帮助,谢谢。

更新

对不起,我应该更明确一点。这适用于 SQL 选择语句。我知道如何进行批量插入,这没问题。我不明白批量选择语句是否可行或如何加快它们的速度。

另外,有人提到了索引,但我对索引一无所知。有人可以提供一些关于他们的信息吗?

4

3 回答 3

4

通过为通常出现在子句中的列SELECT创建索引来加快速度。WHERE

通过将它们全部包装在一个事务中来加速批量插入。

于 2012-06-21T13:36:32.980 回答
0

这可能是 PRE INSERT TRIGGER 代码的一个很好的用途。- 换句话说,让数据库在出现传入行时完成工作。

于 2012-06-21T13:39:06.047 回答
0

如果您正在执行选择语句,则可以使用in关键字。

http://www.w3schools.com/sql/sql_in.asp

SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
于 2012-06-21T13:39:51.413 回答