大概有5亿条数据1个table,然后table有300个字段,然后是一个老外的设计,系统已经运行了2年多了,没办法了。现在要针对这个table给用户做报表。这个table好像是用mysql的一个水平分割功能,按天做的分割。然后用户要的报表我估计会每次大概会有10-20个用户创建报表,然后生成每张报表大概会在这个300个字段的table执行10-20个select 的 sql~,如果不考虑归并、过滤数据的的话。大家有什么好的方法,或者优化的方法提高sql执行效率吗?哭了啊555
如果有用的话放1000分啊~万分感谢啊55
如果有用的话放1000分啊~万分感谢啊55
另外能介绍一下经验吗?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个
我觉得我也是简单的查询啊。最多有个group啊~count啊~而且也不要求实时大概执行一个sql能10分钟内做出来就好~另外能具体点吗?我的qq是~~923570482啊~~~希望能问问你啊~我都在线啊
看下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)
估计where出来的数据大概200-1000w条吧。你这语句我看不出分区对他有什么用……分了区还有1000w?是不是该把范围缩小点?还是你这就是个全表扫描?