请说一下Mysql中count(1)、count(*)以及count(列)的区别?

近期在Review项目代码时,发现同事们在查询MySQL行数时存在多样的方式,有的使用 COUNT(1) , 有的用 COUNT(id) , 还有人选择了 COUNT(*) 。这混杂的选择引发了我的思考。当然这三种count的方式也是众说纷纭,其中最大的分歧点就是 COUNT(*) 和 COUNT(1) 查询性能上,有人觉得 COUNT(*) 需要转换为…

hello hello 发布于 2024-08-05

使用事件驱动架构简化程序逻辑

你有没有遇到过创建一个需要长时间处理的API的挑战?随着项目的扩展,一个API可能需要多个进程来完成某些任务。让我用下面的故事来帮助你理解这个复杂的场景。 想象一下,有一家名为“披萨屋”的披萨餐厅。当顾客下单时,需要发生多件事情: 厨房需要开始制作披萨。 收银员需要处理付款。 送货员需要被提醒送披萨。 订单详情需要记录在我们的记录中。…

hello hello 发布于 2024-07-30

从 ElasticSearch 中删除数据的几种方式

1. 概述 ElasticSearch 是一款功能强大的分布式搜索和分析引擎,擅长提取和查询大量数据。然而,有时需要删除数据,无论是出于合规性、存储优化还是数据准确性的原因。 在本教程中,我们探讨了从 ElasticSearch 中删除数据的各种方法,从删除单个文档到管理生产环境中的大规模删除。 2. 删除单个文档 首先,ElasticSearch…

hello hello 发布于 2024-07-30

MySQL Join原理分析(缓冲块嵌套与索引嵌套循环)

场景假设 A表(1000条数据)left join B表(1000条数据)。 嵌套循环(Nested-Loop Join) 极简概括:顾名思义多层循环叠加,由于MySQL条数数量有限,所用for循环而不用while,在MySQL中就是多层for循环。…

hello hello 发布于 2024-07-18

消息队列的拉模式和推模式

消息队列(Message Queue)是一种应用程序之间传递数据和信息的通信方法。消息队列中的推拉模式(Push-Pull Model)是指消息的生产者(Producer)将消息发送到队列,然后消费者(Consumer)可以按照推(Push)或拉(Pull)的方式从队列中获取消息。 简单阐述 RocketMQ 推模式(Push Mode)…

hello hello 发布于 2024-07-18

MySQL的页与行格式

什么是MySQL的页? 页是指存储引擎使用的最小的数据存储单位。 当 MySQL 执行读取或写入操作时,是以页为基本单位来进行操作的。即使读写一条数据,MySQL 也会按页操作。 MySQL 的存储引擎会将数据分成多个页,并根据需要将这些页加载到内存中进行处理。 通过使用页来组织数据,MySQL 能够更高效地管理存储空间,减少读取数据时的硬盘 I/O…

hello hello 发布于 2024-07-17

MySQL查询优化方案汇总(索引相关)

索引相关 类型隐式转换 大坑 **字段filed1是varchar类型,且加了索引,如果 where filed1 = 123; type 可能是all,因为123是数字类型,mysql内部会用函数做隐式转换,用了函数,索引就失效了。** 大数据深度分页,用主键 select field1,field2 from table limit…

hello hello 发布于 2024-07-17

一文读懂MySQL7大日志slow、redo、undo、bin等

简介 用于记录执行时间超过指定值的 SQL 语句的详细信息,多用于调试和监控。 配置 因为开启会略微影响性能,所以默认没有开启,所以需要配置。 查看是否开启 show variables like '%slow%'; + | Variable_name | Value | + | slow_launch_time | 2 | |…

hello hello 发布于 2024-07-17

MySQL explain

简介 mysql explain(或desc)用于分析SQL语句的执行计划,多用于测试查询性能。语法:explain sql… 注意 explain执行DML语句,数据不发生变化。 explain执行的结果可以有多条数据,一条数据对应一个表,如果涉及union,MySQL内部会产生一个临时表,就会导致结果多一行数据。 union…

hello hello 发布于 2024-07-17

SQL查询中的小技巧:SELECT 1 和 LIMIT 1 替代 count(*)

前言 在写SQL查询时,常规做法是使用 SELECT count(*) 来统计符合条件的记录数。 然而,在某些情况下,我们只关心是否存在符合条件的记录,而不需要知道具体的记录数。 为了优化性能,可以改用使用 SELECT 1 和 LIMIT 1 的方式查询。 在业务代码中,直接判断查询结果是否非空即可,不再需要使用 count 来获取记录数。 实战…

hello hello 发布于 2024-06-17
上一页 下一页