首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试突击63:MySQL 中如何

MySQL 中,最常见的方法有两个:使用 distinct 或使用 group by,那它们有什么区别呢?接下来我们一起来看。...我们先用 distinct 实现单列,根据 aid(文章 ID),具体实现如下: 2.2 多列 除了单列之外,distinct 还支持多列(两列及以上),我们根据 aid(文章...区别1:查询结果集不同 当使用 distinct ,查询结果集中只有列信息,如下图所示: 当你试图添加非去字段(查询),SQL 会报错如下图所示: 而使用 group...by 排序可以查询一个或多个字段,如下图所示: 区别2:使用业务场景不同 统计之后的总数量需要使用 distinct,而统计分组明细,或在分组明细的基础上添加查询条件,就得使用 group...by 和 distinct 都可以使用索引,此情况它们的性能是相同的;而当的字段没有索引,distinct 的性能就会高于 group by,因为在 MySQL 8.0 之前,group by

3.2K20

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

MySQL 的 3 种方法​,还有谁不会?!

点击关注公众号,Java干货及时送达 在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做。...在 MySQL 中通常是使用 distinct 或 group by子句,但在支持窗口函数的 sql(如Hive SQL、Oracle等等) 中还可以使用 row_number 窗口函数进行。...distinct -- 列出 task_id 的所有唯一值(后的记录) -- select distinct task_id -- from Task; -- 任务总数 select count...它不适合用来展示后具体的值,一般与 count 配合用来计算条数。 distinct 使用中,放在 select 后边,对后面所有的字段的值统一进行。...Spring Boot 定时任务开启后,怎么自动停止? 工作 3 年的同事不知道如何回滚代码! 23 种设计模式实战(很全) Spring Boot 保护敏感配置的 4 种方法! 再见单身狗!

10.1K50

MySQL中的GROUP BY和DISTINCT:的效果与用法解析

MySQL数据库中,经常会遇到需要对数据进行分组和的情况。为了达到这个目的,我们通常会使用GROUP BY和DISTINCT这两个关键字。虽然它们都可以用于,但是它们具有不同的用法和效果。...本文将详细解析MySQL中的GROUP BY和DISTINCT的用法,并比较它们对同一字段的效果是否相同。...当我们希望从一个表格中获取某一列的所有不重复的值,可以使用DISTINCT关键字。例如,我们有一个存储了学生所在城市的表格,现在我们希望获取所有不重复的城市名。...Distinct关键字适用于单个字段的操作,而Group By关键字则更适合进行分组计算和聚合操作。当我们需要对分组进行统计计算,Group By是更合适的选择。...Distinct关键字用于去除结果集中重复的字段值,适用于单个字段的操作。在对同一字段进行,Group By和Distinct的效果是相同的。Group By还可以用于多个字段的分组操作。

1.6K50

MySQL操作优化到极致之三弹连发(二):多线程并行执行

上一篇已经将单条查语句调整到最优,但该语句是以单线程方式执行。能否利用多处理器,让操作多线程并行执行,从而进一步提高速度呢?...比如我的实验环境是4处理器,如果使用4个线程同时执行查sql,理论上应该接近4倍的性能提升。...一、数据分片         我们生成测试数据,created_time采用每条记录加一秒的方式,也就是最大和在最小的时间差为50万秒,而且数据均匀分布。因此先把数据平均分成4份。 1....建立查存储过程         有了以上信息我们就可以写出4条语句处理全部数据。为了调用接口尽量简单,建立下面的存储过程。...MySQL Schedule Event         吴老师也用到了并行,但他是利用MySQL自带的Schedule Event功能实现的,代码应该和下面的类似。

1.3K70

MySQL操作优化到极致之三弹连发(一):巧用索引与变量

元旦假期收到阿里吴老师来电,被告知已将MySQLSQL优化到极致:100万原始数据,其中50万复,把后的50万数据写入目标表只需要9秒钟。...要把后的50万数据写入到目标表。 3. 重复created_time和item_name的多条数据,可以保留任意一条,不做规则限制。...图一         可以看到,源表中有1000001条记录,后的目标表应该有500000条记录。 三、无索引对比测试 1....(2)MySQL会在临时表derived2上自动创建一个item_id字段的索引auto_key0。...(3)最外层使用auto_key0索引扫描derived2得到的结果行。         与方法2比较,变量方法消除了表关联,查询速度提高了2.7倍。

5.2K80

salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及实现

项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等。...实现此功能可以整体分成三步: 1.通过输入内容检索相关表中符合条件的数据; 2.对检索的数据进行以及封装; 3.前台绑定autoComplete实现自动联想功能。...二.对检索的数据进行以及封装 对于搜索结果,我们需要三部分内容: 搜索的数据中对象的名称:objName; 搜索的数据类型,属于User还是Contact: objType; 搜索的数据中对象的邮箱...定义后,可以先使用Set接受结果集进行,然后转换成List进行结果返回。...还有好多功能点需要优化,比如对数据检索没有进行相关limit的限制,方法写的过于简单,没有分别考虑null的处理等等。有兴趣的小伙伴可以继续完善。

1.2K70

让docker中的mysql启动自动执行sql

在用docker创建mysql容器的,有时候我们期望容器启动后数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库,使用其中的数据了。...其实mysql的官方镜像是支持这个能力的,在容器启动的时候自动执行指定的sql脚本或者shell脚本,我们一起来看看mysql官方镜像的Dockerfile,如下图: ?...搞清楚原理了,现在我们来实践一次吧: 在docker上搭建disconf环境,需要搭建mysql数据库,并且要依次执行四个sql文件分别对数据库,表,数据做初始化,我们有两种做法: 1....我们数据库里看看数据是不是真的有了,执行docker exec -it mysqldisconf /bin/bash进入容器; 执行mysql -uroot -p123456登录mysql后,操作如下图...可以看到,show databases,show tables,select * from app等操作都可以证明sql已经在容器创建后被自动执行,达到了我们的目的。

3.3K71
领券