当前位置: 首页 > wzjs >正文

网站建设的资金风险优化网站教程

网站建设的资金风险,优化网站教程,verycloud wordpress,沈阳seo网站管理在 MySQL 中统计数据表的行数可以使用三种方式,分别是 SELECT COUNT(*)、SELECT COUNT(1)、SELECT COUNT(字段),那么三者之间有什么区别呢? COUNT(*)和 COUNT(1) 都是对所有结果进行 COUNT,COUNT(*) 和 COUNT(1) 本质上并没有区别…

在 MySQL 中统计数据表的行数可以使用三种方式,分别是 SELECT COUNT(*)SELECT COUNT(1)SELECT COUNT(字段),那么三者之间有什么区别呢?

COUNT(*)COUNT(1) 都是对所有结果进行 COUNTCOUNT(*)COUNT(1) 本质上并没有区别(二者执行时间可能略有差别,但是它们的执行效率可以认为是相等的)。在查询语句中,如果存在 WHERE 子句,则是对所有符合筛选条件的数据行数进行统计;如果没有 WHERE 子句,则是对数据表的数据行数进行统计。

COUNT(*)COUNT(1) 虽然执行效率相等,但在 MySQL 不同存储引擎下的时间复杂度也存在区别:

  • 对于 MyISAM 存储引擎:

    如果是在 MyISAM 存储引擎下执行 COUNT(*)COUNT(1),那么统计数据表的行数只需要 O(1) 的时间复杂度,这是因为每张 MyISAM 的数据表都有一个 meta 信息存储了 row_count 值,而一致性则由表级锁来保证。

  • 对于 InnoDB 存储引擎:

    如果是 InnoDB 存储引擎,因为 InnoDB 存储引擎支持事务且采用行级锁和 MVCC 机制的特性,所以 InnoDB 存储引擎无法像 MyISAM 存储引擎一样维护一个 row_count 变量,因此 InnoDB 执行存储引擎执行 COUNT(*)COUNT(1) 需要采用扫描全表,对应的时间复杂度为 O(n),以循环加计数的方式来完成数据行数统计。

对于 COUNT(字段) 而言,在 InnoDB 存储引擎中,如果采用 COUNT(字段) 来统计数据行数,要尽量采用二级索引。这是因为聚簇索引中单个数据节点包含的数据信息要多于二级索引单个数据节点所包含的数据信息,因此如果加载相同个数的数据节点,二级索引(非聚簇索引)所占内存要比聚簇索引更少。

而对于 COUNT(*)COUNT(1) 而言,它们不需要查找具体的行,只是统计行数,系统会自动采用占用空间更小的二级索引来进行统计。如果有多个二级索引,会使用 key_len 小的二级索引进行扫描。当没有二级索引的时候,才会采用主键索引来进行统计。

http://www.dtcms.com/wzjs/522709.html

相关文章:

  • 怎么登陆网站后台管理系统sem外包
  • 怎么自己做个网站广告投放网站
  • 行业网站建设深圳公司网络营销的含义
  • 手机代码编辑器seo店铺描述
  • 阿里云服务器ecs网站seo方案策划书
  • 浙江网站建设品牌网站前期推广
  • 企业申请完域名以后 怎么把网站运行起来网站优化推广方法
  • 手表网站大全360网站关键词排名优化
  • 网站建设公司每年可以做多少个网站打造龙头建设示范
  • 做网站留后门是怎么回事西安百度seo代理
  • 青岛城阳 软件网站开发whois查询 站长工具
  • 供应链网站制作青岛专业网站制作
  • 丽水专业网站建设哪家好国际最新十大新闻事件
  • wordpress柚子皮网站seo内容优化
  • 网站建设与管理学习什么网络竞价托管公司
  • 外贸网站建设 蚂蚁 深圳产品软文是什么
  • 柯桥做网站东莞网站seo优化
  • 江苏省建设厅网站培训网2022年最火的电商平台
  • 优秀个人网站宁波seo免费优化软件
  • 有什么专业做蛋糕的网站吗下载优化大师安装桌面
  • 网站的模板演示怎么做苏州首页排名关键词优化
  • 不同类型的购物网站网站排名分析
  • 诸暨市住房建设局网站活动软文怎么写
  • wordpress后台500错误蔡甸seo排名公司
  • 携创网深圳seo优化seo优化
  • 哪里有培训网页设计seocui cn
  • 有什么网站可以做微信app深圳经济最新新闻
  • 如何宣传商务网站网络销售平台排名
  • 网站连接如何做二维码快速推广
  • 做网站最主要是什么企业seo顾问服务