大概有5亿条数据1个table,然后table有300个字段,然后是一个老外的设计,系统已经运行了2年多了,没办法了。现在要针对这个table给用户做报表。这个table好像是用mysql的一个水平分割功能,按天做的分割。然后用户要的报表我估计会每次大概会有10-20个用户创建报表,然后生成每张报表大概会在这个300个字段的table执行10-20个select 的 sql~,如果不考虑归并、过滤数据的的话。大家有什么好的方法,或者优化的方法提高sql执行效率吗?哭了啊555
如果有用的话放1000分啊~万分感谢啊55
如果有用的话放1000分啊~万分感谢啊55
解决方案 »
- 一个查询SQL难到我了,谢谢了
- WEB应用不同模块的数据放在一个数据库不同表中还是不同数据库中效率高?
- 《PHP和MYSQL WEB开发》第4版 P171页(9.5.5 使用GRANT和REVOKE的例子) 有错 求解
- postgresql如何移值到MYSQL
- MySQL如何实现全文检索
- 一个对表加锁的操作问题
- Postgresql7.3.3性能调查 急
- 怎样将一台计算机备份的数据库文件(SQL Server d:\)恢复到另一台计算机上(SQL Server c:\)
- mysql 每天5W条数据增量,如何优化
- mysql 保存中文 时不时出现乱码
- mysql数据库升级问题
- 高分求解MySQL5:总分分段统计
另外能介绍一下经验吗?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?是不是该把范围缩小点?还是你这就是个全表扫描?