Java面试必面技术点(四)——SQL优化

SQL优化,从简入难 一、从SQL语句上优化 1.不要用select (这样会消耗CPU,IO,内存资源); 2.为常用的查询条件添加索引; 3.where条件上的优化,具体包括避免null值判断,不使用不等于!=,like等会导致全部扫描的条件语句; 4.查一条结果用limit1,统计总条数用count1替代count; 5.不要用子查询,用连接查询代替子查询; 6.连接查询join不要过多,控制在三表以内; 7.复杂语句拆分简单语句,因为可能一个复杂语句的执行就会堵死整个库; 8.适度的批量更新操作。如果数据量过大,就需要单独写方法处理,而不是开启大事务; 9.字符串存储的时候最好转化为数字,节约空间提高查询性能,以及提高对比效率; 10.使用union all替代union(union有去重开销,过滤操作涉及到排序,消耗)。

二、从表结构上优化 1,表中数据多,可以对表进行水平结构的拆分。如在项目中天表的使用; 2,表中列过多,可以对表做垂直方向上的拆分。如货物信息分为货物表和货物详情表; 3,再就是用合适的数据库引擎。innoDB默认引擎,支持事支持外键,一般采用此种,此外还有myisam,据说插入速度快,memory速度快但不安全。

三、其他优化 读写分离; 尽量避免大事务操作,提高系统并发能力。

经验分享 程序员 微信小程序 职场和发展