sql性能优化的手段
一、首先是看执行计划
1、关注type字段
all < index < index range < ref < eq_ref< system/const 分别对应全表扫描、索引扫描、索引范围、非唯一索引、唯一索引、主键常量
索引优化,建立索引,将全表扫描变为索引
2、关注key字段
有哪些可能的索引,关注执行计划选择了哪个索引,看索引是否可以继续优化
3、关注extra字段
出现了filesort、临时表 一般是出现了子查询,group by,order by
sql 中避免出现子查询、group by,order by 这些操作都会导致数据库进行计算,在大数据量时出现性能问题。
二、在表字段上进行优化
如果有大字段,考虑将表字段拆分,单行数据大,会导致 b+树层级变高。还有扫描的页变多
三、分表限制数据量
如果数据条数多,很容易出现性能问题,因为不能保证所有的sql都完全走索引。考虑分库分表。
四、提前计算,存储
将需要临时计算的值,提前计算好存储下来,建立索引。
发表回复