首页 / 技术专题CATEGORY / SPRINGFORALL

架构运维

在这个技术方向,积累扎实的知识与实践。

共 332 篇文章

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

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

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

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

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

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

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

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

MySQL的页与行格式

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

MySQL explain

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

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

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