- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个查询,它可以快也可以慢,具体取决于我获取的记录数。下表显示了我的 LIMIT
子句中的数字以及执行查询和获取结果所需的相应时间:
LIMIT | Seconds (Duration/Fetch)
------+-------------------------
10 | 0.030/ 0.0
100 | 0.062/ 0.0
1000 | 1.700/ 0.8
10000 | 25.000/100.0
如您所见,达到至少 1,000 时没问题,但达到 10,000 时确实很慢,主要是因为获取时间较长。我不明白为什么获取时间的增长不是线性的,但我从 70 多个表中获取了 200 多列,所以结果集获取时间很长的事实不是一个惊喜。
顺便说一下,我要获取的是某家银行所有账户的数据。我正在处理的银行有大约 160,000 个帐户,因此我最终需要从数据库中获取 160,000 行。
尝试一次获取 160,000 行显然不可行(至少不可行,除非我能以某种方式显着优化我的查询)。在我看来,我可以合理获取的最大块是 1,000 行,因此我编写了一个脚本,该脚本将使用 SELECT INTO OUTFILE
、限制和偏移反复运行查询。然后,最后,我将我转储的所有 CSV 文件放在一起 cat
。它有效,但速度很慢。这需要几个小时。我现在正在运行脚本,它在大约一个小时内只转储了 43,000 行。
我应该在查询优化级别解决这个问题,还是较长的提取时间表明我应该关注其他地方?你会推荐我做什么?
想看查询可以看here .
最佳答案
答案在很大程度上取决于您对数据的处理方式。对于非平凡的记录大小,通过 29 个连接查询 215 列永远不会很快。
如果您尝试向用户显示 160,000 条记录,您应该对结果进行分页并且一次只获取一页。这将使结果集保持足够小,即使是相对低效的查询也能快速返回。在这种情况下,您还需要检查用户需要多少数据才能选择或操作数据。很有可能您可以将其缩减为少数几个字段和一些聚合(计数、总和等),这将使用户能够就他们想要使用哪些记录做出明智的决定。使用带有偏移量的 LIMIT
来拉取任意大小的单个页面。
如果您需要导出数据用于报告目的,请确保您只提取报告所需的确切数据。尽可能消除连接,并在需要子数据聚合的地方使用子查询。您需要为常用的连接和条件调整/添加索引。对于您提供的查询,ib.id
和您要加入的无数外键。您可以不使用 bool 列,因为没有足够的不同值来形成有意义的索引。
无论您想要完成什么,删除一些连接和列本身都会加快您的处理速度。 MySQL 需要执行大量繁重的工作来填充该查询是您的主要绊脚石。
关于mysql - 查询的结果集太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900496/
您好,我在我的项目中使用 Nuxt JS,我注意到我的 js 文件变得相当大 我的问题是如何缩小或拆分超过 1mb 的 vendor 或 js 文件 我还看到 font-awesome 也占用了很多空
github 只是告诉我,而不是提交差异——关于我的一个提交—— Sorry, this diff is taking too long to generate. It may be too larg
这个非常简单的绘图命令创建了一个 11x11 像素的跟踪红色矩形: _sp.graphics.lineStyle( 1, 0xFF0000, 1, true, LineScaleMode.NORMAL
我正在尝试创建一个 Mac 应用程序。但是在我使用 Interface Builder 插入组合框并运行应用程序后,我收到以下消息: This application is trying to dra
我通过 url 传递以下数据: '; echo 'Download PDF'; echo ''; ?> 这里$result包含数组形式的 RSS 提要数据。我正在使用 urlencode(
我正在尝试通过 JavaScript 从某人的网络摄像头拍摄快照。该代码可以工作,只是生成的图像对我来说被拉伸(stretch)太多而难以阅读。 我搞乱了:ctx.drawImage(video, 0
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 3年前关闭。 Improve this
我是 React 和 Webpack 代码分割的新手,所以我不确定这对于捆绑 block 来说是否合适。 我尝试根据路由 ( basically done the same thing as in t
我正在开发自己的电子书应用程序。我的书共有 15 章,因此我有一个包含 15 个元素的列表 - 每个元素都是一个包含所有章节文本的字符串。 我还有 15 个 .ogg 文件,是我花钱请配音人员录制的。
我正在部署一个应用程序,该应用程序具有大约 10 个库依赖项(我正在使用 cocoapods)和 appstore 上 30MB 的下载大小,但是当我归档产品以供 Appstore 上传时,xcarc
我正在开发一款全屏游戏,我正在尽最大努力确保它适合所有屏幕尺寸。这被证明是相当困难的,因为当我使用 pygame.FULLSCREEN 时,窗口比屏幕大得多。为了解决这个问题,我根据 python 将
我有一个项目,其中有一些UIbuttons,其中显示了不同的UIimages。通过用户交互,UIButtons 中可能存在任何 UIimages。该项目中有大约 1000 张图像。我已经初始化了一个名
我使用 Eclipse 中的 Window Builder 将 JTextField 添加到 JPanel 中,无论我尝试什么,文本字段都会显示如下: (来源:gyazo.com) 我尝试更改首选尺寸
我有一个查询,我正在选择一个大型数据集,并且由于连接表的一对多关系而花费了非常多的时间。我有三个表——简化后如下: 客户 | customers | CREATE TABLE `customers`
我在 Activity 中使用了一个 PopupWindow,除了 PopupWindow 中包含的元素的填充外,一切正常> - 它太大了 - 几乎占据了 PopupWindows 的大部分小空间。这
这个问题在这里已经有了答案: NSString intValue not working for retrieving phone number (2 个答案) 关闭 9 年前。
我对为什么我的图片大小不正确感到有点困惑。我将 44x44 大小的图像传递给默认行高为 44 像素的 UITableView,但我得到以下结果: 这不是我应该如何设置我的 UITableViewCel
我目前正在用 php 显示用户个人资料图片,如果他们单击它,就会转到他们自己的个人资料。图像显示正确并且链接有效,但链接的区域超出了图片并超过了附近的链接。我将如何减少 anchor 的面积?
这张图片太大了,我想让它适合窗口的大小:http://zgaming.comxa.com 但是我不明白怎么办,我也试过高度和宽度100% html CSS .bgimg { posi
减少矩阵大小的方法在哪里? (x2 阵列)例如,我只需要将数据 (0, 1, 2) 存储到数组中但元素最多可达 250 000。?有没有办法存储值,比如在字典中......? const int MA
我是一名优秀的程序员,十分优秀!