运行 mysql 中的大型查询
Running a large query in mysql
我需要在数据库中抓取包含与 175,000 个项目中的任何一个匹配的项目的行,并将结果转换为 csv 文件(稍后我将使用 python 脚本对其进行解析和分析)。我想到的一些问题是:[你真的可以将那么大的项目列表输入到 workbench sql 查询中吗(没有足够的内存来复制它)?网络会支持如此大的数据传输吗?其他我不知道的事情?] 什么是查询和获取如此大量数据的明智方法?我在 windows 上使用 MySql Workbench 到 windows 服务器,但我愿意尝试更好的界面选项。
简单(但在本例中不实用)查询格式:
select * from database where date>='2017-06-01 00:00:00' and date<='2017-07-01 00:00:00' and instr in ('ab123', 'azx0456', 'rtpz888')
*这两个指定日期之间应该有大约 10,000,000 条记录(或行)。
*"instr in (...)" 部分实际上需要包含大约 175,000 个独特项目的列表
- 将 instr 过滤器导入单独的 table,例如 table xx,列名 instr
select * from database where date>='2017-06-01 00:00:00' and date<='2017-07-01 00:00:00' and instr in (select instr from xx)
我已经有一段时间没有真正使用 sql 了。这应该没问题。
出口部分 select * from database into outfile "aa.txt" where ....
我需要在数据库中抓取包含与 175,000 个项目中的任何一个匹配的项目的行,并将结果转换为 csv 文件(稍后我将使用 python 脚本对其进行解析和分析)。我想到的一些问题是:[你真的可以将那么大的项目列表输入到 workbench sql 查询中吗(没有足够的内存来复制它)?网络会支持如此大的数据传输吗?其他我不知道的事情?] 什么是查询和获取如此大量数据的明智方法?我在 windows 上使用 MySql Workbench 到 windows 服务器,但我愿意尝试更好的界面选项。
简单(但在本例中不实用)查询格式:
select * from database where date>='2017-06-01 00:00:00' and date<='2017-07-01 00:00:00' and instr in ('ab123', 'azx0456', 'rtpz888')
*这两个指定日期之间应该有大约 10,000,000 条记录(或行)。 *"instr in (...)" 部分实际上需要包含大约 175,000 个独特项目的列表
- 将 instr 过滤器导入单独的 table,例如 table xx,列名 instr
select * from database where date>='2017-06-01 00:00:00' and date<='2017-07-01 00:00:00' and instr in (select instr from xx)
我已经有一段时间没有真正使用 sql 了。这应该没问题。
出口部分 select * from database into outfile "aa.txt" where ....