MYSQL中insert...select优化?
2015-06-28 10:54
411 查看
以前是弄Oracle的,但是公司现在用的数据库是MYSQL,我们需要统计天报表,周报表和月报表,都应用了分表操作,但是在汇总的时候还是很忙,我们用的表结构是MyISAM,这个表结构是不能改变了。
数据量都是比较的大,大概在1000万左右,我们用的语句很多都是insert...select,也就是汇总后插入到临时表,然后在统计,这样下来,效率很慢,跑一个大概在2个小时左右,不知道有没有好的办法优化一下,最好能一个小时搞定
有没有好的思路提供一下,谢谢
也就是,你先把每天写入的数据,先进行汇总,以便用于再统计
比如有三条数据
username num createdate
a 1 2011-2-10 10:00:01
a 6 2011-2-10 11:00:01
a 7 2011-2-10 17:00:01
你先汇总成一条数据
a 14 2011-2-10
若再做周报表的时候,就在日汇总的基础之上,搞月统计就在日统计 或者在周统计的基础之上(有些时候,把月划分为4周的模式,才可用),季度统计就在月统计的基础上再做
这样的统计思路都是最常用的,需要你根据数据项做一些统计汇总(或称中间表)
以前是弄Oracle的,但是公司现在用的数据库是MYSQL,我们需要统计天报表,周报表和月报表,都应用了分表操作,但是在汇总的时候还是很忙,我们用的表结构是MyISAM,这个表结构是不能改变了。
数据量都是比较的大,大概在1000万左右,我们用的语句很多都是insert...select,也就是汇总后插入到临时表,然后在统计,这样下来,效率很慢,跑一个大概在2个小时左右,不知道有没有好的办法优化一下,最好能一个小时搞定
有没有好的思路提供一下,谢谢
数据量都是比较的大,大概在1000万左右,我们用的语句很多都是insert...select,也就是汇总后插入到临时表,然后在统计,这样下来,效率很慢,跑一个大概在2个小时左右,不知道有没有好的办法优化一下,最好能一个小时搞定
有没有好的思路提供一下,谢谢
也就是,你先把每天写入的数据,先进行汇总,以便用于再统计
比如有三条数据
username num createdate
a 1 2011-2-10 10:00:01
a 6 2011-2-10 11:00:01
a 7 2011-2-10 17:00:01
你先汇总成一条数据
a 14 2011-2-10
若再做周报表的时候,就在日汇总的基础之上,搞月统计就在日统计 或者在周统计的基础之上(有些时候,把月划分为4周的模式,才可用),季度统计就在月统计的基础上再做
这样的统计思路都是最常用的,需要你根据数据项做一些统计汇总(或称中间表)
以前是弄Oracle的,但是公司现在用的数据库是MYSQL,我们需要统计天报表,周报表和月报表,都应用了分表操作,但是在汇总的时候还是很忙,我们用的表结构是MyISAM,这个表结构是不能改变了。
数据量都是比较的大,大概在1000万左右,我们用的语句很多都是insert...select,也就是汇总后插入到临时表,然后在统计,这样下来,效率很慢,跑一个大概在2个小时左右,不知道有没有好的办法优化一下,最好能一个小时搞定
有没有好的思路提供一下,谢谢
相关文章推荐
- MySQL Memory 存储引擎浅析
- 小贝_mysql建表以及列属性
- C# mysql 四种操作数据库方法封装
- Ubuntu下mysql安装及常用命令
- 【HM】第4课:MySQL入门
- 使用MySql保存session
- weka连接mysql数据库
- MySql在Window上的安装
- mysql技术内幕InnoDB存储引擎-阅读笔记
- Nagios 监控mysql服务器详细实现过程
- MySQL技术内幕-InnoDB存储引擎-读书笔记(一)
- CHAR和VARCHAR
- WampServer修改MySQL密码
- mysql error:Host is not allowed to connect to this MySql server
- mysql利用st_distance函数查询附近的点的功能
- MySQL学习系列9:视图
- mysql触发器解决购物中订单爆仓问题
- MySql之ALTER命令用法详细解读
- MySQL学习系列8:索引
- MySQL 的 utf8_general_ci 和 utf8_unicode_ci 有什么区别,应如何选择?