几百万条数据怎么优化速度?? 3秒一个SQL语句的速度
要弄一个报表程序, 只查不写, 几百万数据怎么3秒内能统计出数据?(3秒左右最好 尽量不超过10秒), 每次查出来的数据不大也就1000~2000条, 不过基本都需要全表统计, 各种sum 各种group by 各种order by 各种full join。。。 服务器就一般常见的几万块机子
我现在的思路是在这些大表根据业务情况建立一些汇总表, 比如统计地区销量就: 地区,商品大类, 业务日期,销量, 金额这样, 大概就10w多条, 这样我在这10w多条记录里sum啊group by啊order by啊都比较快,10秒内基本就出来了, 不过有些纠结的是有几个报表是要统计大区里的店铺数, 商品大类里有几个款。。。 尼玛这不是很好搞了
另外就是最科学的建索引、优化查询语句了, 现在主表的主键是订单号varchar(30), 我换成int会快多少? 日期加索引, 店号加索引 , 明细表的索引就2个, 一个订单 一个款号 没设主键。 索引还有什么优化的地方?
另外一个想法是换oracle, 不知道能快多少? 如果从10秒快到8秒也没意思, 能从10秒到3秒就换。。
我的库情况是这样, 600w的表有3张, 200w的表有10来张, 30w的表有20来张, 这些都是盘点啊销售啊什么的业务表, 都是主从结构, 比如
销售主表: 订单号(varchar 30 主键), 业务日期(只有天不带小时,每天2000条), 单据类型(3,4个类型,经常会做where条件), 店铺表(distinct 1000多条)
销售明细表: 订单号(varchar 30 主键) 商品款号(distinct 8000条), 颜色(distinct 1w条, 很少统计查询到)、 尺码(distinct 20来条, 很少统计查询到)、 数量、 金额
基础数据表大概20个, 最大最常用的商品档案表8000条, 店铺表1000来条, 其他很多都是小表, 大部分基础数据表都是商品档案的扩展属性, 比如商品大类表, 商品小类表, 商品风格表等,这些都100条以下
------- 大家
相关推荐
java一次性查询处理几百万数据解决方法
java一次性查询处理几百万数据解决方法 几百万数据是可以处理的 暂时还没试过几千万级的数据处理
处理上百万条的数据库如何提高处理查询速度(数据库开发必看)
处理上百万条的数据库如何提高处理查询速度(数据库开发必看)
利用DB-Library访问SQL Server来提高数据处理速度的方法 (1).pdf
利用DB-Library访问SQL Server来提高数据处理速度的方法 (1).pdf
【MySQL】SQL优化(九).pdf
MySQL资源包内容推荐 内容概要: 本资源包包含了一系列关于MySQL的详细资料和教程,旨在帮助用户全面了解和掌握MySQL数据库的使用和管理。内容涵盖了MySQL的安装与配置、SQL语言基础、数据库设计、性能优化、安全配置、备份与恢复等多个方面。此外,还包含了一些高级话题,如分区表、复制与集群、存储引擎选择等。资源包形式多样,包括文字教程、案例分析、视频教程、实践练习等,以满足不同用户的学习需求。 适用人群: 初学者:对于刚开始接触MySQL的用户,本资源包提供了从入门到进阶的详细教程,帮助用户快速掌握MySQL的基本操作。 数据库管理员(DBA):对于需要管理多个MySQL数据库的管理员,本资源包提供了丰富的管理和维护技巧,帮助管理员提高工作效率。 开发者:对于使用MySQL进行应用开发的开发者,本资源包提供了深入的技术解析和最佳实践,帮助开发者优化数据库性能,提升应用质量。 技术爱好者:对于对MySQL技术感兴趣的技术爱好者,本资源包提供了丰富的技术资料和案例分析,帮助爱好者深入了解MySQL的核心技术。 使用场景及目标: 学习MySQL基础:用户可以通过本资源包学习MySQL的基础知识,包括SQL语言、数据库设计等。 性能优化:对于已经在使用MySQL的用户,本资源包提供了性能优化的方法和技巧,帮助用户提高数据库的运行效率。 数据库管理:数据库管理员可以利用本资源包中的技巧和建议,提高数据库管理的效率和质量。 解决实际问题:对于在使用MySQL过程中遇到的问题,用户可以在本资源包中找到相应的解决方案。 通过学习和使用本资源包,用户可以达到以下目标: 熟练掌握MySQL的基本操作和管理技能。 能够根据业务需求设计和优化数据库结构。 深入理解MySQL的核心技术和原理。 解决在使用MySQL过程中遇到的各种问题。 其他说明: 本资源包将持续更新,以反映MySQL技术的最新发展和变化。 用户可以在资源包的评论区或相关社区中交流学习心得和经验,共同解决问题和分享资源。 如有任何疑问或建议,欢迎联系我们,我们将尽快回复并提供帮助。
如何将MySQL查询速度提升300倍?
在进行性能分析前,需要先定位耗时查询。 MySQL 提供了内建的耗时查询日志。使用前,打开 my.cnf 文件,将slow_query_log 设置为”On”。 同时将 long_query_time 设置为一个对一次查询来说比较慢的时间(秒数),比如 0.2。slow_query_log_file 设置为你想保存日志文件的路径。然后运行代码,执行时间超过设定上限的查询将会被记录到日志中。 一旦定位这些烦人的查询,可以探究慢的原因。MySQL提供了EXPLAIN关键字。可以与SELECT、DELETE、INSERT、REPLACE、UPDATE语句一起使用。只需要如下一样添加到查询


