摘要:
主要介绍了数据库优化关键点:数据批量插入时采用顺序插入并手动控制事务;主键设计需考虑页分裂和合并问题;order by和group by操作要遵循索引最左前缀法则;update操作尽量使用索引字段避免表锁;count()和limit查询需特殊优化。视图使用注意事项:CASCADED和LOCAL选项决定条件检查范围,更新视图需满足与基表一对一关系。通过合理运用这些优化技巧,可显著提升数据库操作效率。
一,数据插入(load进行批量插入)
顺序插入比乱序插入更好,手动控制事务
二,主键优化
1,页分裂(乱序插入会出现页分裂从而影响性能)
2,页合并(MERGE_THRESHOLD阈值可以自行指定)
3,设计原则
三,order by优化
using index 通过索引返回排序数据,性能高
using filesort 需要返回的数据在缓冲区排序
Tips:在where语句中,如果存在最左前缀,那么就可以使用联合索引。而在order by语句中,必须按照索引的顺序使用索引,如果不按照索引的顺序使用索引,那么会导致无法使用联合索引,从而降低查询效率。
四,group by优化
1,分组操作会根据索引提高效率
2,分组操作时,索引的使用也满足最左前缀法则
五,limit优化
六,count()优化
七,update优化
如果根据非索引字段进行更新操作,MySQL 只能全表扫描从而由行锁变成表锁,所以update更新的条件尽量采用索引字段
八,视图
1,CASCADED(默认值)
CASCADED会向上级联依赖当前添加该条件选项视图的所有视图的限定条件,如果都满足才可以执行插入操作
2,LOCAL
LOCAL表示只对当前添加该条件选择的视图的限定条件有效,而不会向上级联其依赖的视图的限定条件
3,更新条件
视图中的行与基础表中的行必须存在一对一的关系,该视图才可以更新
4,作用