【问题标题】:mysql query browser runs out of memorymysql查询浏览器内存不足
【发布时间】:2012-08-07 00:17:53
【问题描述】:

我在 mysql 数据库中有一个非常大的表(数百万行)。每行都有一个作为字段创建的日期。我想提取从 2011 年到今天的行。我使用的查询看起来像这样:

select data1, data1, data3, data4, data5, data6 
  from db.table 
 where date(data3) between '2011-10-01' and '2012-08-06'

在浏览器崩溃之前,我在 mySQL 查询浏览器中获取了大约 300 万行数据,并且出现 Glib 错误(gmem.c:173 failed to allocate 50080000 bytes. aborting.)

仅仅是因为我没有足够的内存吗?任何人都可以提出任何技巧或提高性能的查询吗?

【问题讨论】:

  • 首先你不希望mysql浏览器检索3m条记录。您通常希望尽可能减少检索的行数。首先,这不是内存不足的问题,而是缺乏对需要检索什么的主要想法,所以基本上你必须更仔细地考虑你想要什么以及你想要它的方式。

标签: mysql database


【解决方案1】:

您使用的查询浏览器似乎正在将整个数百万行的结果集提取到 RAM 中。如果出于某种原因您必须这样做,您将需要更多 RAM。

问题是:你对这个结果集做了什么?您是否将其保存到文件中?如果是这样,那么请使用 MySQL 浏览器功能来执行此操作。它不需要将整个结果集下载到 RAM 所需的内存。

编辑: MySQL Query Browser 正在被 MySQL / Oracle 淘汰。您可能应该找到一些其他程序来将您的行提取到 CSV (Excel) 文件中。如果您愿意,一些工具也会创建 XLS 文件。

这是正确的问题和答案:

How to output MySQL query results in CSV format?

【讨论】:

  • 是的,很好的跟进。我想将结果导出到 Excel 文件。能否请您告诉我如何“使用 MySQL 浏览器功能”
猜你喜欢
  • 1970-01-01
  • 2014-03-29
  • 2013-08-18
  • 2017-05-15
  • 2017-12-20
  • 2013-03-20
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多