课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
MySQL数据库是程序员在开发软件的时候会经常用到的一个数据库类型,而本文我们就通过案例分析来了解一下,数据库优化方法都有哪些操作步骤。
开启慢查询
在mysql中慢查询是默认关闭的,在排查慢sql的时候建议开启慢查询,但在生产环境下不建议开启,因为会对性能造成影响;
explain
在上步中通过慢查询可以定位到慢sql,接着就可以使用explain关键字对慢sql进行分析,explain的作用就是给出sql的执行计划。
重点关注下面几列,id、type、possible_keys、key、extra
id代表执行的顺序,从大到小依次执行,id相同的情况从上到下执行
type代表连接使用了那种类别,是否使用了索引,从坏到好是all、index、range、ref、eq_ref、const、system。all是全表扫描;index使用索引;range表示范围查找;ref表示用到了非索引;eq_ref表示使用索引;const表示主键索引且是等值比较;system表示查询的系统表;
possible_keys代表可能用到的索引键
key代表实际用到的索引键
rows代表扫描的行数
extra代表除了已经显示的信息外同样重要的信息,常见的取值有usingwhereusingindexusingfilesortusingtemporary。usingwhere表示使用了where条件;usingindex表示使用到了索引;usingfilesort表示使用到了文件排序,不是使用索引排序;usingtemporary表示用到了临时表,多用在orderby/groupby上
避免索引失效
索引在sql的优化方面占据了很大的比重,如何避免索引失效那
1、避免隐式的数据类型转换;例,whereid=10id为varchar类型,这时索引失效
2、在like中避免使用前缀%;例,whereidlike'%12',这时索引失效,如果让索引不失效,需要使用覆盖索引
3、避免在where条件中进行运算;例,whereconcat(id,'12')=12,这时索引失效
4、不符合索引匹配的左原则的;多用在联合索引上,没使用到联合索引的一个字段;
5、mysql使用分析器,分析出来的结果是全表扫描更快,这时也不会使用索引;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。