DBA大牛MySQL优化心得,语句执行加速就是这么简单!
一打开科技类论坛,最常看到的文章主题就是MySQL机能优化了,为什么要优化呢? 由于:
就是咱们说的“机能题目”,措施员一碰着它老是焦头烂额! 本日小编对MySQL优化总结了一些心得,但愿在各人之后的事变中能有全部辅佐! like 前导符优化 like恍惚查询形如'%AAA%'和'%AAA'将不会行使索引,可是营业上不行停止也许又必要行使到这种情势。 凡是的要领有两种:
in 和 exist 假如查询的两个表巨细相等,那么用in和exists不同不大。 假如两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 譬喻:表A(小表),表B(大表) 示例一: 示例二: not in 和 not exist 假如查询语句行使了not in 那么表里表都举办全表扫描,没有效到索引;而not exist 的子查询依然能用到表上的索引。以是无论哪个表大,用not exists都比not in要快! 子查询优化
straight_join mysql hint: Mysql 优化器在处理赏罚多表的关联的时辰,很有也许会选择错误的驱动表举办关联,导致了关联次数的增进,从而使得sql语句执行变得很是的迟钝。 这个时辰必要有履历的DBA举办判定,选择正确的驱动表,这个时辰 straightjoin 就起了浸染了,下面我们来看一看行使straight_join举办优化的案例: 实行回收user表做驱动表,行使straight_join逼迫毗连次序: 高效分页 传统分页:
limit道理:
保举分页: 伟大关联SQL的优化
force index 偶然优化器也许因为统计信息禁绝确等缘故起因,没有选择最优的执行打算,可以工钱改变mysql的执行打算,譬喻: count的优化 凭证服从排序的话,count(字段) 总结 MySQL 机能优化 最首要是领略 innodb 的索引道理及布局及 SQL 的执行打算,在不绝累积履历的基本上熟能生巧。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |