2018-04-09

作者: fc129 | 来源:发表于2018-04-10 00:17 被阅读0次

mysql基础调优

1.避免未命中索引

1.避免在 where 子句中使用!=或<>操作符

2.在 where 及 order by 涉及的列上建立索引

3.不要 select id from t where num is null 

4.尽量避免在 where 子句中使用 or 来连接条件

    不要 select id from t where num=10 or num=20

    可以 select id from t where num=10 union all select id from t where num=20

5.少用左%

6.能用between就不要in

7.对字段用函数会无法命中索引

8.不要 where substring(name,1,3)=’abc’ ,可以  where name like ‘abc%

2.其他

1.不要 select num from a where num in(select num from b)

   可以 select num from a where exists(select 1 from b where num=a.num)

2.开启查询缓存

    // 查询缓存不开启 

        $r=mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");

     // 开启查询缓存

         $today=date("Y-m-d");

         $r=mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");

3.只有一行时用limit1

4.join表的时候相同的字段都建立索引

5.把IP地址存成 UNSIGNED INT ,方便between。

6.避免在整个表上使用count(*),它可能锁住整张表.

7.千万不要 ORDER BY RAND() ,可以先去除总数取随机数再limit x ,1

3.查询原理


回头总结一下MySQL整个查询执行过程,总的来说分为6个步骤:

1.客户端向MySQL服务器发送一条查询请求

2.服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段

3.服务器进行SQL解析、预处理、再由优化器生成对应的执行计划

4.MySQL根据执行计划,调用存储引擎的API来执行查询

5.将结果返回给客户端,同时缓存查询结果

优化原理说明

相关文章

网友评论

    本文标题:2018-04-09

    本文链接:https://www.haomeiwen.com/subject/yqnwhftx.html