首页 / MYSQL / 很大的mysql表和报告
很大的mysql表和报告
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了很大的mysql表和报告,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2447字,纯文字阅读大概需要4分钟。
内容图文
![很大的mysql表和报告](/upload/InfoBanner/zyjiaocheng/881/eb5a85bf17bd471b8e37355354d0fe5d.jpg)
我正在寻找用于处理MySQL中大型表的选项.在我的数据库中,很少有表具有超过1.3亿行(超过70GB)的快速增长.为了进行报告和分析,我必须运行一些聚合函数,尽管有索引,但查询运行速度非常慢.我试图用合并数据制作一些表,但这并不是最佳选择.因此,我正在寻找可用于解决此问题的工具选项.
解决方法:
如果尚未对表进行分区,请首先进行以??下操作:
http://dev.mysql.com/doc/refman/5.1/en/partitioning.html
http://www.slideshare.net/datacharmer/mysql-partitions-tutorial
您如何“整合”数据?也许您使用的方法不是最佳方法.一种好方法(让我知道这是否确实是您正在做的事情)是创建一个包含聚合数据的表.然后以这种方式进行设置:
首先搁置数据如何转储到主表中…
>创建相对于将数据加载到主表中的方式以指定时间间隔运行的作业(cron或您可能已经方便使用的或已配置的任何作业)(将其称为MAIN,向前移动).如果您的MAIN表每小时加载一次,请对其进行同步.半小时一次?没关系无论如何,您都可以检查速度,或者检查报告运行时间是否接近非高峰时间,然后在
>正确索引表中的合并数据.我们称其为AGG向前发展.
>创建一个存储过程,将数据从MAIN加载到AGG,这基本上是AGG LOAD FOR INTERVAL-?.当然,您是唯一知道如何或何时将数据插入MAIN的人,因此您也将是知道聚合意图的人.如果聚合意图没有完成,也可以继续运行聚合存储过程(例如,它是一整天的时间,因此它是一个累积运行,直到设置了该过程)
>使用STAGING表.对我来说,他们是最好的.
>创建一个用于重新检查数据的存储过程,以便通过运行此过程可以在AGG表中反映记录的任何更新或其他插入.包括要更新范围的参数.如果是每天,则您需要进行每日AGG LOAD和每日AGG RELOAD程序.包括AGG CHECK INTERVAL和AGG CHECK DAILY程序,这些程序将帮助您晚上入睡.哦,更不用说AGG DATA HOLE CHECK或MISSING AGG DATA CHECK并应用业务规则来实现对所需最小数据量的检查,您可以从聚合表或主表或登台表(最好)中获取数据
>当然,切勿修改AGG表.始终只重新加载它.
>这有什么帮助?那么,您是否仅需要让报表查询AGG表,该表就更小,速度更快(因为聚合已经完成)?间隔加载可能会带来性能问题,但是如果您正确构造表,表的索引及其维护,则应该值得.
>分区从哪里进入?存档.一旦过了一定的时间(讨论一下您的团队/老板/上司可以接受的条件),您就可以从MAIN中存档旧数据.我经历过必须在生产数据库中保存1年的数据.这有点像拖累,但是由于这是客户的要求,所以公司别无选择,只能给我我需要的磁盘空间(擦手),直到我得到不错的运行时,我才开始尝试.我必须提到,我的经验是使用Microsoft SQL Server 2005,存储过程和SSIS使其变得有趣.
如果您还不了解这些内容,那么这就是全部,对于其他可能想考虑选择的人而言.我并不是说您还不知道以上任何一项;我只是在说我以前能够做的事情-考虑到我没有更多的信息可用于处理您的帖子,只是您尝试了一个合并过程.
内容总结
以上是互联网集市为您收集整理的很大的mysql表和报告全部内容,希望文章能够帮你解决很大的mysql表和报告所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。