自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ThinkWon的博客

敏于观察,勤于思考,善于综合,勇于创新。

  • 博客(295)
  • 收藏
  • 关注

原创 Docker 从入门到实践系列三 - Docker 常用命令

文章目录帮助命令镜像命令镜像检索镜像下载镜像列表镜像删除容器命令搜索镜像下载镜像运行容器端口映射启动做端口映射的容器端口映射格式查看端口映射小结查看容器停止容器启动容器重启容器删除容器其他重要命令查看容器日志连接到正在运行容器在运行的容器中执行命令查看容器中正在运行进程查看容器内部细节容器和宿主机互相拷贝文件更多操作命令常用命令小结帮助命令# 查看docker版本docker version# 查看docker基本信息docker info# 查看具体docker命令的解释docker --h

2021-06-06 22:44:19 2333 8

原创 Docker 从入门到实践系列二 - Docker 安装

文章目录查看 centos 版本升级软件包及内核(可选)卸载老版本安装依赖包设置阿里云镜像安装 docker启动 docker将 docker 服务设为开机启动停止 docker检验安装是否成功查看 centos 版本Docker 要求 CentOS 系统的内核版本高于 3.10。通过命令:uname -r查看当前 centos 版本,如版本不符,需升级系统版本。升级软件包及内核(可选)yum -y update卸载老版本yum remove docker docker-clien

2021-06-06 22:40:55 244

转载 MyBatis 源码分析 - 插件机制

文章目录1.简介2. 插件机制原理3. 源码分析3.1 植入插件逻辑3.2 执行插件逻辑4. 实现一个分页插件5. 总结1.简介一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性。二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作。以 MyBatis 为例,我们可基于 MyBatis 插件机制实现分页、分表,监控等功能。由于插件和业务无关,业务也无法感知插件的存在。因此可以无感植入插件,在无形中增强功能。开发 MyBatis

2021-05-14 23:20:13 358

转载 MyBatis 源码分析 - 缓存原理

文章目录1.简介2.缓存类介绍2.1 PerpetualCache2.2 LruCache2.3 BlockingCache3. CacheKey4.一级缓存5.二级缓存6.总结参考1.简介在 Web 应用中,缓存是必不可少的组件。通常我们都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,减轻数据库压力。作为一个重要的组件,MyBatis 自然也在内部提供了相应的支持。通过在框架层面增加缓存功能,可减轻数据库的压力,同时又可以提升查询速度,可谓一举两得。MyBatis

2021-05-14 23:18:01 530

原创 人性的弱点-读书笔记

文章目录第一篇、人际关系的基本技巧1、不要批评、指责或抱怨他人2、真诚地赞赏和肯定他人的优点3、重视他人的需求第二篇、赢得他人喜爱的六个方式1、真诚地关心他人2、经常微笑3、名字是任何语言中最甜美、最重要的声音4、学会倾听,鼓励他人多谈他们自己的事情5、与他人谈论他们感兴趣的话题6、 衷心让他人觉得他很重要第三篇、如何让他人想你之所想1、避免与他人辩论2、对他人的意见表示尊重,千万别说你错了3、如果错了,当即承认错误4、友善地对待他人5、首先让别人说“是,是的”6、让对方多说话7、让别人觉得那是他们的主意8

2021-05-14 23:14:10 2184 12

转载 MyBatis 源码分析 - 内置数据源

文章目录1.简介2.内置数据源初始化过程3.UnpooledDataSource3.1 初始化数据库驱动3.2 获取数据库连接4.PooledDataSource4.1 辅助类介绍4.2 获取连接4.3 回收连接4.4 小节5.总结1.简介本篇文章将向大家介绍 MyBatis 内置数据源的实现逻辑。搞懂这些数据源的实现,可使大家对数据源有更深入的认识。同时在配置这些数据源时,也会更清楚每种属性的意义和用途。因此,如果大家想知其然,也知其所以然。那么接下来就让我们一起去探索 MyBatis 内置数据源的源

2021-05-01 16:56:53 371 2

转载 MyBatis 源码分析 - SQL 的执行过程

文章目录* 本文速览1.简介2.SQL 执行过程分析2.1 SQL 执行入口分析2.1.1 为 Mapper 接口创建代理对象2.1.2 执行代理逻辑2.1.2.1 创建 MapperMethod 对象① 创建 SqlCommand 对象② 创建 MethodSignature 对象2.1.2.2 执行 execute 方法2.2 查询语句的执行过程分析2.2.1 selectOne 方法分析2.2.2 获取 BoundSql2.2.2.1 DynamicContext2.2.2.2 解析 SQL 片段2.

2021-04-11 18:08:11 1575 7

转载 MyBatis 源码分析 - 映射文件解析过程

文章目录1.简介2.映射文件解析过程分析2.1 解析映射文件2.1.1 解析 `` 节点2.1.2 解析 `` 节点2.1.3 解析` ` 节点2.1.3.1 解析 `` 和` ` 节点2.1.3.2 解析` 1.简介在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程。由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因。所以我将映射文件解析过程的分析内容从上一篇文章中抽取出来,独立成文,于是就有了本篇文章。在本篇文章中,我将分析映射文件中出现的一些及节点,比如<cache

2021-04-04 00:07:17 1446 2

原创 如何阅读一本书-读书笔记

文章目录作者介绍本书主要内容第一篇 阅读的层次阅读的活力与艺术阅读的层次基础阅读检视阅读如何做一个自我要求的读者第二篇 阅读的三个层次:分析阅读第一阶段:了解这本书在谈什么第二阶段:作者是如何将内容写出来的第三阶段:评论这本书,批判思考第三篇 阅读不同读物的方法如何阅读实用型的书如何阅读想象文学阅读故事、戏剧与诗歌的一些建议如何阅读历史书如何阅读科学与数学如何阅读社会科学第四篇 阅读的最终目标主题阅读阅读与心智的成长作者介绍莫提默·J·艾德勒(1902-2001)以学者、教育家、编辑人等多重面貌享有盛

2021-04-03 23:12:32 1393 6

原创 VMware Workstation Pro 16搭建CentOS8虚拟机集群

文章目录准备工作安装VMware Workstation Pro 16创建Linux虚拟机设置网络模式NAT(网络地址转换模式)安装CentOS8其他配置将服务器修改为静态IP关闭防火墙更换为阿里云yum源安装jdk搭建集群环境克隆虚拟机调整测试在日常学习、工作当中,我们经常需要用到分布式集群环境,如nacos集群,mysql集群,zookeeper集群,redis集群,大数据集群等,而通常并没有那么多的物理机器可以使用,因此,通过虚拟机搭建一套分布式集群环境以供开发和测试,是一个不错的选择。那今天我们就

2021-03-21 22:59:17 1458 4

原创 CentOS8安装GitLab13.7.2

文章目录卸载gitlab安装依赖库安装gitlab-ce登录gitlabgitlab日常使用文件路径gitlab服务构成gitlab常用命令卸载gitlab注意:如果之前没有安装gitlab可以跳过卸载gitlab步骤,直接进入安装依赖库1、停止gitlab# 停止gitlabgitlab-ctl stop# 查看gitlab状态gitlab-ctl status输出结果,如果都是down说明停止成功2、卸载gitlab(注意这里写的是gitlab-ce)rpm -e gitlab-

2021-03-21 21:30:14 1053 1

原创 CentOS8搭建Nacos1.4.0集群

文章目录序言预备环境准备下载安装包搭建Nacos集群数据库配置在Linux中安装并启动Nacos服务数据库与集群配置修改nacos 启动脚本注册Nacos服务,并设置为开机启动项Nacos单机验证Nacos集群部署配置Nginx负载均衡解压nginx安装第三方的开发包安装与配置nginx将nginx设置为开机启动项负载均衡集群验证序言在生产环境中,一般使用Nacos保证高可用,这里部署三个节点Nacos,通过Nginx负载均衡,服务架构如下图预备环境准备请确保是在环境中安装使用使用Linux系

2021-03-21 21:26:22 1150 3

原创 CentOS8安装Docker

文章目录卸载老版本安装依赖包设置阿里云镜像安装Docker Engine - Community --此命令会安装最新版本(latest)安装低版本Docker查询可安装的Docker版本手动安装container.io安装containerd.io替换冲突的安装包启动与测试卸载老版本yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker

2021-03-21 21:16:47 937

原创 CentOS8安装MySQL8

文章目录检查是否已安装(强力卸载)安装MySQL8.0查看 mysql 是否安装成功设置MySQL服务为开机启动项启动 mysql 服务相关安装目录mysql 登录(不用密码登录)重置 root 密码重新登录(使用新密码)navicat远程连接检查是否已安装(强力卸载)for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;donerm -rf /var/lib/mysql && rm -rf /etc/my.cnf &&amp

2021-03-21 21:11:18 818

转载 MyBatis 源码分析 - 配置文件解析过程

文章目录* 本文速览1.简介2.配置文件解析过程分析2.1 配置文件解析入口2.2 解析 properties 配置2.3 解析 settings 配置2.3.1 settings 节点的解析过程2.3.2 元信息对象创建过程2.3.2.1 DefaultReflectorFactory 源码分析2.3.2.2 Reflector 源码分析2.3.2.3 PropertyTokenizer 源码分析2.3.3 小结2.4 设置 settings 配置到 Configuration 中2.5 解析 typeA

2021-03-14 23:14:02 1578 1

原创 MyBatis 源码分析 - MyBatis入门

文章目录1.本文速览2.什么是 MyBatis3.为什么要使用 MyBatis3.1 使用 MyBatis 访问数据库3.2 JDBC 和 Spring JDBC 简介3.3 MyBatis 和 Hibernate 比较4.如何使用 MyBatis4.1 在pom.xml添加依赖4.2 在application.yml配置4.3 mapper文件4.4 创建用户表与添加用户数据4.5 创建实体类4.6 新建dto和vo对象4.7 bean转换工具类4.8 用户service接口4.9 用户controlle

2021-03-14 23:09:44 2942 7

原创 Java8新特性-Base64

文章目录Base64 编码由来什么是 Base64 和 Base64 的使用场景什么是 Base64Base64 的使用场景Base64 编码原理Base64 编码过程Base64 解码原理Base64 编码字符串实例Base64 具体实现对字符串进行 Base64 编解码Encoder方式UrlEncoder方式MimeEncoder方式对文件进行 Base64 编解码文件与 Base64 字符串转换工具类文件转 Base64 字符串Base64 字符串转文件Base64 编码由来为什么会有Base6

2021-02-13 00:52:27 2715 9

原创 Java8新特性-Stream

文章目录简介Stream 的特性创建Stream通过集合创建流通过数组创建流通过Stream.of方法创建流创建规律的无限流创建无限流创建空流Stream操作分类中间操作无状态filtermapflapMap有状态distinctsortedsortedreversedthenComparinglimitskipconcat终结操作非短路操作forEachreducecollecttoList,toSet,toSetgroupingBypartitioningBymax、mincountsummarySta

2021-02-12 23:38:15 2837 3

原创 Java8新特性-Optional

文章目录简介Optional源码分析和使用场景属性和构造常用方法get()方法isPresent()方法ifPresent(Consumer<? super T> consumer)方法filter()方法map()方法flatMap()方法orElse()方法orElseGet()方法orElseThrow()方法Optional实战空判断断言使用误区总结在学习Optional之前我们先来看下面的例子。在我们开发过程中,碰到的异常中NullPointerException必然是排行第一的。所

2021-02-11 20:42:02 2333 10

原创 Java8新特性-Lambda表达式

文章目录简介使用Lambda表达式的优缺点基本概念函数式接口接口默认方法嵌套类(Nested Classes)使用Lambda表达式的前提基础语法Lambda表达式的重要特征目标类型与类型推断作用域方法引用静态方法引用指定对象实例方法引用特定类型任意对象方法引用超类方法引用构造器方法引用数组构造器方法引用Java8内置的函数式接口消费型接口供给型接口函数型接口断言型接口简介Lambda表达式(也称闭包),是Java8中最受期待和欢迎的新特性之一。Lambda表达式本质是一个匿名函数,但是它并不是匿名类的

2021-02-08 23:22:03 2712 4

原创 博客之星,有你的鼓励更精彩

文章目录大家好,我是CSDN的博主ThinkWon,2018年加入CSDN,三年来将工作学习中遇到的包括Java面试总结、并发编程、Java虚拟机与Spring Cloud等方面的知识进行归纳总结,以分享交流学习的心态,在CSDN共发布了250余篇文章,获得了超过600万的访问量,13万+的粉丝,得到了大家的积极好评。在2020博客之星年度总评选中成功入围Top200,希望大家帮我投票,每天都可以投多票哦,点击链接:https://bss.csdn.net/m/topic/blog_star2020/

2021-01-12 12:34:39 3543 12

原创 PyCharm常用配置和常用插件

文章目录常用配置配置Python解释器文件编码文件和代码模板修改主题修改字体快捷键风格显示行数和方法线代码自动提示快捷键鼠标悬停显示文档说明关闭自动更新安装 autopep8 工具启动不打开上一个项目导出导入配置常用插件常用配置以下配置能使用File -> New Projects Settings -> Settings for New Projects进行配置的尽量用这个配置,因为这个配置是作用于所有新建项目的,不能用的选择File -> Settings配置Python解释器

2021-01-09 22:51:26 2781 13

原创 PyCharm2020.3.2安装

文章目录1.下载 Pycharm版本选择2.安装 Pycharm3.配置 Pycharm4.创建项目创建 Python 项目设置项目名称和选择解释器5.测试运行 Python 文件PyCharm是目前 Python 语言最好用的集成开发工具,可以帮助用户提高开发效率。1.下载 Pycharm在 Pycharm 的官网即可下载,链接如下PyCharm for Windows :https://www.jetbrains.com/pycharm/download/#section=windowsPyC

2021-01-09 22:45:55 5760 5

原创 Anaconda安装

文章目录1.Anaconda是什么2.Anaconda下载3.Anaconda安装4.Anaconda环境变量配置5.检验是否安装成功6.检验Anaconda Navifator是否安装成功7.修改Anaconda镜像修改为清华大学镜像移除清华大学镜像8.PyCharm配置Anaconda方式一(建立新的项目时)方式二(已经打开项目)9.总结1.Anaconda是什么Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。Anaconda也是P

2021-01-09 22:40:52 3840 4

原创 Win10安装Python3.9

文章目录1.下载Python3.9.12.安装Python3.9.1Python 安装向导选择要安装的 Python 组件选择安装目录禁用系统的Path长度自动限制3.验证安装成功运行 Python 命令在 Python 交互式环境中编写代码1.下载Python3.9.1Python 安装包下载地址:https://www.python.org/downloads/打开该链接,点击下图中的版本号或者Download按钮进入对应版本的下载页面,滚动到最后即可看到各个平台的 Python 安装包。这里

2021-01-09 22:34:52 3233 5

原创 史上最全Java8日期时间工具类

文章目录这是我总结的Java8日期工具类,应该是比较全面的,满足日常开发绝大部分需求,分享给大家,有错误之处,还望大神指教。/** * Java8日期时间工具类 * * @author JourWon * @date 2020/12/13 */public class LocalDateUtils { /** * 显示年月日时分秒,例如 2015-08-11 09:51:53. */ public static final String DATETIME

2020-12-13 14:52:18 15935 53

原创 Java8日期时间API

文章目录Java 8以前日期时间API存在的问题关于时间和时区GMT和UTC时区Unix时间戳Java 中的 Unix 时间LocalDate、LocalTime、LocalDateTime获取对象的方法常用方法与获取相关的方法(get系类的方法)转换的方法判断的方法增减年月日时分秒的方法(plus/minus系列的方法)指定年月日时分秒的方法将日期格式化为字符串的方法解析字符串为日期时间的方法TemporalAdjuster接口 - 时间调节器Duration类 - 用于计算两个“时间”间隔的类Perio

2020-12-12 23:56:51 2547 5

原创 史上最全Java7日期时间工具类

文章目录这是我总结的Java7日期工具类,应该是比较全面的,满足日常开发绝大部分需求,分享给大家,有错误之处,还望大神指教。/** * 日期时间工具类 * * @author JourWon * @date 2020/12/5 */public class DateUtils { /** * 显示年月日时分秒,例如 2015-08-11 09:51:53. */ public static final String DATETIME_PATTERN =

2020-12-06 22:11:51 2173 9

原创 Java7日期时间API

文章目录Date构造函数与常用方法日期比较测试Date构造方法和常用方法SimpleDateFormat使用SimpleDateFormat测试日期和字符串的相互转换DateFormat格式代码Calendar创建一个代表系统当前日期的Calendar对象创建一个指定日期的Calendar对象Calendar类对象字段类型Calendar类对象信息的设置测试Calendar类对象信息的获得,创建一个指定日期的Calendar对象GregorianCalendar构造函数与常用方法测试GregorianCal

2020-12-06 22:02:56 1305

原创 Quartz简介

文章目录Quartz 是什么What is the Quartz Job Scheduling Library?使用场景特点Quartz 使用的设计模式核心元素SchedulerTriggerCalendarJobDetailJobJobExecutionContext核心元素之间的关系Quartz 类图主要线程数据存储最近做了一个活动管理的项目,项目中有活动开始通知和活动结束通知等功能,需要创建大量的定时任务,最后选择使用 Quartz 分布式调度框架。本文主要是对Quartz的简单介绍,了解 Qua

2020-11-22 12:38:15 2986 4

原创 富爸爸穷爸爸-读书笔记

文章目录概述序言 这就是你所需要的第一部分 课程第一章 富爸爸,穷爸爸第二章 富人不为钱工作第三章 为什么要教授财务知识第四章 管住自己的事业第五章 税收的历史和公司的力量第六章 富人的投资第七章 学会不为钱工作第二部分 开端第八章 克服困难第三部分 开始行动第九章 开始行动第十章 还想要更多的吗?这里有一些要做的事情结束语 怎样用7000美元支付孩子的大学费用概述罗伯特·清崎(英文名:Robert Toru Kiyosaki),1947年4月8日生于美国夏威夷,日语名清崎彻(Kiyosaki Tor

2020-10-24 16:33:37 4572 16

原创 高效能人士的七个习惯-读书笔记

文章目录概述由内而外全面造就自己效能的定义习惯的定义第一部分 个人的成功:从依赖到独立习惯一:积极主动-个人愿景的原则习惯二:以终为始-自我领导的原则习惯三:要事第一-自我管理的原则第二部分 公众领域的成功:从独立到互赖习惯四:双赢思维-人际领导的原则习惯五:知彼解己-移情沟通的原则习惯六:统合综效-创造性合作的原则第三部分自我提升和完善习惯七:不断更新总结回顾概述《高效能人士的七个习惯》入选《福布斯》“有史以来最具影响力的10大管理类图书之一”,“20世纪有影响力的商业书籍”;是中国商界最经典、最

2020-10-06 17:09:03 6829 5

原创 Java是编译型还是解释型语言

1.编译型语言和解释型语言编译型语言定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。代表语言:C、C++、Pascal、

2020-09-19 10:53:20 5208 3

原创 斯坦福高效睡眠法-读书笔记

文章目录序言 斯坦福的完美睡眠法作者斯坦福大学睡眠研究所最佳睡眠睡眠的重要性第一二章 睡眠基础认知睡眠负债遗传基因决定理想的睡眠时间睡眠不足的危害睡眠的使命梦不可忽视的睡眠共性运动员的睡眠方式精英人士都会有意识地逃离垃圾睡眠促进睡眠的认知行为疗法睡眠质量决定清醒的程度睡眠的认识误区如何了解睡眠的质量死亡率高达40%的睡眠障碍睡眠革命第三章 黄金90分钟睡眠法则黄金90分钟:培养最强大脑和体魄判断睡眠质量好坏的关键最初的90分钟不得不加班的夜晚怎么度过黄金90分钟:决定睡眠质量喝酒不会提高睡眠质量健康人闭上眼

2020-09-01 20:15:10 8235 4

原创 高效休息法-读书笔记

文章目录1.科学正确的“大脑休息法”正念(Mindfulness)定义基本原理预设模式网络(DefaultMode-Network,简称DMN)定义特征DMN过度反刍思考高效休息法的目的2.消除大脑疲劳的七个休息法1.感觉脑袋昏昏沉沉时——正念呼吸法目标与原因分析改善步骤关键点2.心事重重时——动态冥想目标与原因分析改善步骤关键点3.压力导致身体状态不佳时——压力呼吸化法目标与原因分析改善步骤关键点4.想跳脱思考怪圈时——“猴子思维”消除法目标与原因分析改善步骤关键点5.被愤怒冲动冲昏头脑时——RAIN法目

2020-09-01 20:13:02 7045

原创 读书清单-计算机

文章目录编程语言与程序设计Java核心技术并发编程Java虚拟机Spring全家桶MyBatis与HibernateC语言Python前端其他数据库操作系统网络与通信人工智能大数据与云计算办公软件计算机理论、基础知识电子商务IT人文/互联网分类:编程语言与程序设计,办公软件,数据库,图形图像,计算机安全,人工智能,操作系统,电子商务,网络与通信,计算机理论、基础知识,大数据与云计算,IT人文/互联网编程语言与程序设计Java核心技术序号书名分类是否已买是否已读是否整理读书笔记

2020-08-18 15:18:03 8070 6

原创 Swagger2常用注解说明

文章目录Swagger2简介使用Swagger解决的问题Spring Boot集成Swagger2添加依赖添加Swagger2Config配置类编写接口用户DTO用户controller访问接口文档Swagger2常用注解说明Controller相关注解@Api接口相关注解@ApiOperation@ApiParam@ApiImplicitParams@ApiImplicitParam@ApiResponses@ApiResponseModel相关注解@ApiModel@ApiModelPropertyS

2020-07-20 23:40:14 15391 7

原创 Docker 从入门到实践系列一 - 什么是Docker

文章目录虚拟机和容器虚拟机和容器的区别什么是 DockerDocker 的优点Docker 的应用场景Docker 核心概念docker 镜像(image)docker 容器(container)docker 仓库(resoisitory)底层原理底层原理namespacecontrol groupsunion file systemsDocker 引擎Docker 架构Docker 为什么快虚拟机和容器虚拟机和容器都属于虚拟化技术。虚拟机是在一套硬件上,虚拟出一个完整的操作系统,在该系统上再运行所

2020-07-20 23:13:22 14127 1

翻译 虚拟机和容器有什么不同

文章目录什么是虚拟机?虚拟机的好处受欢迎的虚拟机提供商什么是容器?容器种类集装箱的好处受欢迎的集装箱供应商虚拟机使用与容器使用虚拟机与容器有什么不同虚拟机和容器都可以充分利用计算机硬件和软件资源。容器是新兴的事物,但是虚拟机已经并且继续在各种规模的数据中心大受欢迎。如果您正在寻找在云中运行自己的服务的最佳解决方案,则需要了解这些虚拟化技术,了解它们之间的区别以及每种技术的最佳用途是什么。什么是虚拟机?虚拟机(VM)是计算机系统的仿真。简而言之,它可以在一台计算机的硬件上运行看似多台单独的计算机。操

2020-07-20 23:00:06 6471

原创 MySQL中count(字段) ,count(主键 id) ,count(1)和count(*)的区别

文章目录count(可空字段)count(非空字段)与count(主键 id)count(1)count(\*)性能对比结论注:下面的讨论和结论是基于 InnoDB 引擎的。首先要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。所以,count(*)、count(1)和count(主键 id) 都表示返回满足条件的结果集的总行数;而 count(字段),则表示返回满足条

2020-06-08 00:48:17 15495 5

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除