不知道有人在mysql5.0上 针对10亿条数据操作过没有

Kyle-soft 2010-05-23 11:57:27
大概有5亿条数据1个table,然后table有300个字段,然后是一个老外的设计,系统已经运行了2年多了,没办法了。

现在要针对这个table给用户做报表。这个table好像是用mysql的一个水平分割功能,按天做的分割。

然后用户要的报表我估计会每次大概会有10-20个用户创建报表,然后生成每张报表大概会在这个300个字段的table执行10-20个select 的 sql~,如果不考虑归并、过滤数据的的话。大家有什么好的方法,或者优化的方法提高sql执行效率吗?哭了啊555
如果有用的话放1000分啊~万分感谢啊55
...全文
471 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kyle-soft 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 flairsky 的回复:]
引用 17 楼 zlyperson 的回复:
我计划是在后面增加一个时间条件然后直接去分区里面获取数据啊。


那过滤出来的数据一般是多少嘛?

1000w肯定快不了
[/Quote]
具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?
Kyle-soft 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 zlyperson 的回复:]
引用 20 楼 flairsky 的回复:
引用 17 楼 zlyperson 的回复:
我计划是在后面增加一个时间条件然后直接去分区里面获取数据啊。


那过滤出来的数据一般是多少嘛?

1000w肯定快不了
具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?
[/Quote]具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?
Kyle-soft 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 flairsky 的回复:]
引用 17 楼 zlyperson 的回复:
我计划是在后面增加一个时间条件然后直接去分区里面获取数据啊。


那过滤出来的数据一般是多少嘛?

1000w肯定快不了
[/Quote]具体点啊?具体点啊?具体点啊?具体点啊?具体点啊?
flairsky 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zlyperson 的回复:]
我计划是在后面增加一个时间条件然后直接去分区里面获取数据啊。
[/Quote]

那过滤出来的数据一般是多少嘛?

1000w肯定快不了
Kyle-soft 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yueliangdao0608 的回复:]
引用 7 楼 zlyperson 的回复:

引用 6 楼 yueliangdao0608 的回复:
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!



啊啊啊啊~太好了啊~用5.1也可以啊~~我们可以升级啊~~问下mysql 5以上什么版本比较稳定啊~
另外能介绍一下经验吗?72亿数据啊。。。。。。。。。。。我现在执行的sql都是做统计前……
[/Quote]
总是不言不语让人难忘记~~55
Kyle-soft 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 zhangweiit 的回复:]
我只处理过一亿多的,不过,字段没有这么多

楼主,要不试一下,设计一个新的数据库,跑一个程序,把这些数据从大表,慢慢导入到你的新库里面
然后再来分析报表
[/Quote]1亿多你怎么做的啊~有什么好的经验吗?谢谢啊?
Kyle-soft 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 flairsky 的回复:]
where fd1 = xx and fd2 = xx and fd3 = xx 一般也就2,3个条件左右 ;
估计where出来的数据大概200-1000w条吧。

你这语句我看不出分区对他有什么用……分了区还有1000w?是不是该把范围缩小点?还是你这就是个全表扫描?
[/Quote]我计划是在后面增加一个时间条件然后直接去分区里面获取数据啊。
flairsky 2010-05-27
  • 打赏
  • 举报
回复
where fd1 = xx and fd2 = xx and fd3 = xx 一般也就2,3个条件左右 ;
估计where出来的数据大概200-1000w条吧。

你这语句我看不出分区对他有什么用……分了区还有1000w?是不是该把范围缩小点?还是你这就是个全表扫描?

Kyle-soft 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
一般是借用数据仓库的方法。根据用户需要常用的报表需求,把数据信息提取出来到另外一个报表数据库中。

这个需要了解你的具体需求才能给你具体方案,基于你目前提供的信息,也只能说,使用数据仓库了。
[/Quote]

一般是借用数据仓库的方法。根据用户需要常用的报表需求,把数据信息提取出来到另外一个报表数据库中。
怎么做啊?

能具体点吗?我的qq是~~923570482啊~~~希望能问问你啊~我都在线啊
Kyle-soft 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yueliangdao0608 的回复:]
引用 7 楼 zlyperson 的回复:

引用 6 楼 yueliangdao0608 的回复:
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!



啊啊啊啊~太好了啊~用5.1也可以啊~~我们可以升级啊~~问下mysql 5以上什么版本比较稳定啊~
另外能介绍一下经验吗?72亿数据啊。。。。。。。。。。。我现在执行的sql都是做统计前……
[/Quote]

我觉得我也是简单的查询啊。最多有个group啊~count啊~而且也不要求实时大概执行一个sql能10分钟内做出来就好~

另外能具体点吗?我的qq是~~923570482啊~~~希望能问问你啊~我都在线啊


zhangweiit 2010-05-26
  • 打赏
  • 举报
回复
我只处理过一亿多的,不过,字段没有这么多

楼主,要不试一下,设计一个新的数据库,跑一个程序,把这些数据从大表,慢慢导入到你的新库里面
然后再来分析报表
LeoBai 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yueliangdao0608 的回复:]
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!
[/Quote]
牛人。

什么应用情形?
看下infinidb。大表使用infinidb引擎

mysql> create table t_innodb(a int)engine=innodb;
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> create table t_infinidb(a int)engine=infinidb;
Query OK, 0 rows affected (1.49 sec)
zouyx317 2010-05-25
  • 打赏
  • 举报
回复
进来学习。
友情帮顶!
懒得去死 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zlyperson 的回复:]

引用 6 楼 yueliangdao0608 的回复:
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!



啊啊啊啊~太好了啊~用5.1也可以啊~~我们可以升级啊~~问下mysql 5以上什么版本比较稳定啊~
另外能介绍一下经验吗?72亿数据啊。。。。。。。。。。。我现在执行的sql都是做统计前100名一类的报表
sql一般都是:
sel……
[/Quote]


并不是说什么样的业务都适合大表,大表是适合简单查询的。像你这样实时生产报表的操作还是算了吧。
ACMAIN_CHM 2010-05-24
  • 打赏
  • 举报
回复
一般是借用数据仓库的方法。根据用户需要常用的报表需求,把数据信息提取出来到另外一个报表数据库中。

这个需要了解你的具体需求才能给你具体方案,基于你目前提供的信息,也只能说,使用数据仓库了。
Kyle-soft 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
一般是借用数据仓库的方法。根据用户需要常用的报表需求,把数据信息提取出来到另外一个报表数据库中。

这个需要了解你的具体需求才能给你具体方案,基于你目前提供的信息,也只能说,使用数据仓库了。
[/Quote]

谢谢啊~但是基本无法提取啊。因为报表内容是允许自己定义的。
Kyle-soft 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iihero 的回复:]
这么多条记录,还有这么多字段,数据量相当大啊,这个表。按天分区是吧。
均摊到每天,也有不少数据。
首先肯定要根据原始表整理出一些基础表,再根据基础表生成最终报表。具体还是跟你要生的报表需求有关。不能妄下定论。
[/Quote]谢谢啊~但是无法生成基础表。因为报表内容是允许自己定义的。
懒得去死 2010-05-24
  • 打赏
  • 举报
回复
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!
Kyle-soft 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yueliangdao0608 的回复:]
我用MYSQL 5.1处理过单表72亿条记录的情况。 不过5.0我没有处理过好么大的!
[/Quote]


啊啊啊啊~太好了啊~用5.1也可以啊~~我们可以升级啊~~问下mysql 5以上什么版本比较稳定啊~
另外能介绍一下经验吗?72亿数据啊。。。。。。。。。。。我现在执行的sql都是做统计前100名一类的报表
sql一般都是:
select count(*),filed1,filed2.... 一般也就4,5个条件左右
from bigTable
where fd1 = xx and fd2 = xx and fd3 = xx 一般也就2,3个条件左右 ;
估计where出来的数据大概200-1000w条吧。
group by filed1 .... 一般也就 4,5个
rucypli 2010-05-24
  • 打赏
  • 举报
回复
过滤数据做中间数据表
加载更多回复(3)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧