美文网首页MySQL学习笔记
Day2:MySQL重构查询

Day2:MySQL重构查询

作者: 蚂蚁窝大梦想 | 来源:发表于2018-07-15 12:43 被阅读15次

    写在前面:

       在优化问题查询上,目的是找到一个最优获取查询结果方法。方案如下:查询转化为另一种写法;修改应用程序代码。

    复杂查询OR多个简单查询

    复杂查询:分组查询GROUP BY、多表查询JOIN和合并查询UNION

    MySQL内部每秒可扫描内存中百万行数据,相比,MySQL响应数据到客户端就慢很多。在其他条件都相同情况,尽可能少的查询是更好的。有些前提下,大查询分解为小查询是很有必要的。具体情况,需要认真衡量。

    切分查询

    大查询“分而治之”,大查询分割为小查询,小查询值完成大查询一小部分。

    删除查询案例:

    DELETE FROM messages WHERE created < DATE_SUB(NOW(),INTERVAL 3 MONTH);
    
    rows_affected = 0  
    do{  
        rows_affected = do_query("DELETE FROM messages WHERE created < DATE_SUB(NOW(),INTERVAL 3 MONTH) LIMIT 10000")  
    }while rows_affected > 0  
    

    分解关联查询

    关联查询分解:对每一个表进行单标查询,结果在程序中关联。

    优势:

    • 缓存更高效,重复查询缓存结果。
    • 减少锁的竞争。
    • 查询本身效率提升,如IN()方式代替关联查询,即顺序查询代替随机查询。
    • 减少冗余查询。
    • 哈希关联,应用层面关联,类似哈希关联。

    相关文章

      网友评论

        本文标题:Day2:MySQL重构查询

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