一 查询优化优化率
总:业务设计>数据库设计>查询优化
产品设备:高并发cpu要求高,内存要求高,数据量大:磁盘空间大
解析:1业务设计:产品经理设计,开发人员优化
-->业务处理应尽量少连接数据库
如:有一个listIds 可以循环一个一个查 也可以用 in listIds 一次查全
-->业务处理复杂,没必要非要一条sql语句执行完,可以分条查询在合并
如:多个嵌套查询,可先查一部分 拿着结果再去查询剩余一部分 有时候反而效率更高
2.数据库设计:
-->分库:常查询一个库,常写入更改另一种库
-->分表:信息量比较大不用所有列都放在一个表中
如:用户信息表可拆分为,常用的查询表[uesr_id,account,password,name],user_identitycard[user_id,id_card,id_img ....]
-->索引:
1常查询字段 2最好为数字 3可联合索引
二sql语句优化
1.索引查询列 放在无索引查询条件前面
2.索引一定要在范围查询前面,索引碰到范围查询失效
3.索引碰到函数处理失效
4.只查询有用的列可减少查询时间、
三原理解析
mysql解析流程:server接收client sql请求-->分解分析-->查询优化器-->执行计划-->存储引擎-->结果返回
执行计划是决定sql语句最终消耗资源的主要因素,我们查询的优化就是优化分析然后有更好的执行计划
四查询解析
explain:: sql语句; 会返回执行计划,可用于分析,sql语句是否合理优化