首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试突击63:MySQL如何

MySQL 中,最常见的去方法有两个:使用 distinct 或使用 group by,那它们有什么区别呢?接下来我们一起来看。...我们先用 distinct 实现单列去,根据 aid(文章 ID)去,具体实现如下: 2.2 多列去 除了单列去之外,distinct 还支持多列(两列及以上)去,我们根据 aid(文章...ID)和 uid(用户 ID)联合去,具体实现如下: 2.3 聚合函数+去 使用 distinct + 聚合函数去,计算 aid 去之后的总条数,具体实现如下: 3.group by...distinct 和 group by 的区别 官方文档在描述 distinct 时提到:在大多数情况下 distinct 是特殊的 group by,如下图所示: 官方文档地址:https://dev.mysql.com...by 和 distinct 都可以使用索引,此情况它们的性能是相同的;而当去的字段没有索引时,distinct 的性能就会高于 group by,因为在 MySQL 8.0 之前,group by

3.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

高并发下如何

在添加数据时,mysql发现数据不存在,则直接insert。如果发现数据已经存在了,则做update操作。...8. insert ignore 在mysql中还存在这样的语法,即:insert ... ignore。 在insert语句执行的过程中:mysql发现如果数据重复了,就忽略,否则就会插入。...防表 之前聊过,因为有逻辑删除功能,给商品表加唯一索引,行不通。 后面又说了加分布式锁,或者通过mq单线程异步添加商品,影响创建商品的性能。 那么,如何解决问题呢?...我们能否换一种思路,加一张防表,在防表中增加商品表的name和model字段作为唯一索引。...在添加商品数据之前,先添加防表。如果添加成功,则说明可以正常添加商品,如果添加失败,则说明有重复数据。 防表添加失败,后续的业务处理,要根据实际业务需求而定。

1.3K71

短视频如何有效去?vivo 短视频分享去实践

✏️ 编者按: 对于短视频产品而言,提升视频去性能、降低误杀率,是提升用户体验的必要环节。...业务背景 为什么要视频去? 对于观众来说,良好的观看体验与视频内容有着很大的关系。...所以,内容进行去处理是非常有必要的。 目前,视频去面临哪些痛点? 目前,基础样本数据已达到大几千万,在不久的将来会过亿。...目前的难点是,在亿级样本数据的基础上支持百万级别的吞吐量,同时需要兼顾去的精度以及高召回率。接下来,我将为大家介绍我们是如何应对这几个问题的。...第二个部分是去策略,主要包括了业务上的逻辑以及去的策略控制。第三个部分是特征召回部分,主要是作为 Milvus 数据库的客户端代理工作,工作内容主要是负责创建集合以及索引。

85610

AutoMQ 如何实现分区持续平衡?

但由于 Apache Kafka 的平衡过程中涉及到大量变量的决策(副本分布、Leader 流量分布、节点资源利用率等等),以及平衡过程中由于数据同步带来的资源抢占和小时甚至天级的耗时,现有解决方案复杂度较高...、决策时效性较低,在实际执行平衡策略时,还需依赖运维人员的审查和持续监控,无法真正解决 Apache Kafka 数据平衡带来的问题。...03 AutoMQ 平衡组件的实现3.1 整体架构AutoMQ 持续平衡组件(AutoBalancer)的实现,主要分为以下三个部分:指标采集状态维护决策调度除了 Broker 侧完成指标采集外,状态感知和决策调度由...一个目标即为一个期望通过调度达到的目的,如实现流量均衡、限制单 Broker 的分区数量、限制单 Broker 的流量上限等,确定了目标后,还需要解决以下两个问题:如何判断一个 Broker 是否满足当前目标如何判断一次分区移动是否可行...AutoBalancer 实现分区的持续平衡,以及如何通过定义数学模型来输出可解释、可观测的调度决策。

4700

场景题:海量数据如何

在海量数据如何确定一个值是否存在?这是一道非常经典的面试场景题。 那怎么回答这个问题呢?接下来咱们就详细的聊一聊。 参考答案 判断一个值是否存在?...结论 哈希表和布隆过滤器都能实现判,但它们都会存在误判的情况,但布隆过滤器存储占用的空间更小,更适合海量数据的判。...位数组和 key 之间的关系,如下图所示: 如何实现布隆过滤器?...小结 在海量数据如何确定一个值是否存在?通常有两种解决方案:哈希表和布隆过滤器,而它们两都存在误判的情况,但布隆过滤器更适合海量数据的判断,因为它占用的数据空间更小。...本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud

19720

MySQL多列字段去的案例实践

distinct支持单列去和多列去,如果是单列去,简明易懂,即相同值只保留1个,如下所示,select distinct code from tt;多列去重则是根据指定的去列信息进行,即只有所有指定的列信息都相同...错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL...除了distinct,group by子句也可以去,从需求的理解上,如果按照code做group by,应该就可以得到唯一的code了,但是实际执行,提示这个错误,select code, cdate...MySQL不同版本sql_mode默认值可能是不同的,因此在数据库升级配合的应用迁移过程中,尤其要注意像only_full_group_by这种校验规则的改变,很可能是个坑。...本文关键字:#SQL# #去#

2.9K10

如何实现Kafka的Partition分配

这时需要在Broker之间重新分配分区,本篇文章Fayson主要介绍如何重新分配Topic的partition。...可以看到新创建的Topic,相应的Partition会分布在新的Broker节点上,对于之前的Topic的Partition不会自动均衡到新的节点上,因此之前Topic的压力还在旧的节点上,接下来Fayson会说明如何使用...3.重新分配Partition ---- 以我们上面创建的test_partition为例来说明,如何重新分配该Topic的Partition。...可以看到在命令行生成的Partition分配的计划(这里还没有真正的去分配,只是生成了分配计划),在截图中也很清楚的标出了分配前和分配后的结果,注意这里我们需要使用到分配计划生成的结果(即重新分配后Partition...6.对于数据量比较大的Topic运行重新分配会比较耗时,这时可以通过如下命令查看Topic的分配情况,命令如下: kafka-reassign-partitions \ --zookeeper

6.8K60

场景题:海量数据如何

在海量数据如何确定一个值是否存在?这是一道非常经典的面试场景题。那怎么回答这个问题呢?接下来咱们就详细的聊一聊。参考答案判断一个值是否存在?...结论哈希表和布隆过滤器都能实现判,但它们都会存在误判的情况,但布隆过滤器存储占用的空间更小,更适合海量数据的判。...位数组和 key 之间的关系,如下图所示:图片如何实现布隆过滤器?...小结在海量数据如何确定一个值是否存在?通常有两种解决方案:哈希表和布隆过滤器,而它们两都存在误判的情况,但布隆过滤器更适合海量数据的判断,因为它占用的数据空间更小。...本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud

23130
领券