这篇文章主要介绍“SQL优化方法总结”,在日常操作中,相信很多人在SQL优化方法总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL优化方法总结”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
关于sql 优化总结。
首先是发现和分析慢sql。
德鲁伊连接池+日志 输出慢查询。
explain sql 用于分析 慢sql。
---------------------------------------------------
1.where 子句中对于字段的null值的判断。
2.where字句中的不确定性的判断。
不等于(!= ,<>)
or(用 union all 替换 or)
like '%str'(只有 ‘%str%’ 才绝对不会触发索引,‘%str’可以通过反转索引实现,mysql 暂时不支持好像)
in(in 和 exists 取舍)(连续的话可以用 between and)
子查询数据量小于主查询 用 in ,反之。 not in 和 not exists 不用考虑,直接 选 not exists,他的子查询可以触发索引。
3.where 子句中对字段进行了操作。(包括运算,和函数操作等)
4.什么情况下需要创建索引。
数据量要大。
where 后经常出现的 列。
数据种类要多。不能像 性别 一样 只有两种。
读多写少的。 insert 和 update 都会更新索引。
。。。
其他优化手段(不是因为索引的)
数据冗余
varchar代替 char
使用数值类型代替 字符类型。(字符类型比较 比较每一个字符,而数值类型只用比较一次)
用具体字段代替select *
。。。
复杂逻辑交由 java层面解决
利用缓存
以上无法解决可以考虑:分库分表和读写分离
到此,关于“SQL优化方法总结”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。