集中兵力应付大数据量

本文介绍了SQL查询优化的七大策略:基于主键搜索提高效率、减少索引表扫描次数、合理使用聚合函数、限定海量查询条件、优化排序操作、数据表分区及谨慎执行删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基于主键的搜索受数据量的影响不大
select * from user where id = ?

100条的表跟100w的表执行上面sql,时间相差不大

二、减小扫描索引表的次数
sql执行最耗时间的是磁头扫描文件块,避免全表扫描的同时 也要减少索引表的访问

三、注意所有的聚合函数(sum max 等)都会全表扫描

四、海量查询时为查询加限定条件(如日期范围),使数据量可控

五、排序操作甚至比扫描表还耗资源,排序是复杂算法,一般会多遍处理
当结果集较小时,排序会发生在内存;而较大时则会使用硬盘了,所以可通过调整排序内存来改善排序性能
排序性能与参与排序的实际总量相关而不是记录数,应尽量减少参与排序的数据总量

六、对数据表进行分区,如常用的范围分区等
通过分区将常用的数据存放在同一物理块,提高了IO速度

七、删除数据,把没用的历史数据删除
删除是最耗时的操作,既要执行where查询、更新数据表、 维护索引表,又要写undo日志等
删除要谨慎 可采用truncate


待续。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值