zoukankan      html  css  js  c++  java
  • mysql 查询优化 ~ select count 知多少

    一 简介:今天咱们来聊聊mysql的查询总数

    二 具体介绍

         1 从引擎层面说

          myisam  myisam的扫描总行数是非常快的,这是因为myisam会将表的总行数存储起来,定期维护,但是注意,一旦加入where条件,这个优势就会消失 

          innodb   innodb 的扫描总行数随着数据量的增大越来越慢,innodb自身因为MVCC机制,不同事务读取的总行数可能不同,所以维护一个单独的总行数没有什么意义

        2 从查询方式说起

          1 select  count(*)   2 select count(primary)  3 select count(非paimary) 4 select count(1)

           分析思路

            1 要考虑 值是否是NULL 2 要考虑从B+树读取记录 3 统计字段的大小

           执行效率  1=4 > 2 > 3

     三 总结

           1尽量选择 select count(*) ,因为count(*)做过优化,并不取值和进行NULL判断,更不必考虑统计字段的大小

           2 对于select count(*)的explain,如果辅助索引很小,会按照辅助索引走,如果大,就按照主键来走了,基于成本

  • 相关阅读:
    CSP-S2019 括号树
    [CQOI2007]余数求和
    CF1000E We Need More Bosses
    [HAOI2009]毛毛虫
    ls命令
    HTML的标签 属性 等等
    虚拟机安装Tools
    1.1 什么是安全渗透
    004-Kali Linux安装-熟悉环境
    003-Kali Linux 安装-持久加密USB安装、熟悉环境、熟悉BASH命令
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/10119724.html
Copyright © 2011-2022 走看看