大规模的数据库存储系统中,数据的生命周期管理是很有必要的;从业务角度发现过期数据,数据归档和数据碎片整理等。以 MySQL 为例,1 个运行很久的 TB 级 MySQL 实例中,极有可能数百 GB 的数据,对业务来说是”过期数据”可直接归档后清理。如果不能发现和及时清理,这部分“过期数据”对生产数据库备份资源消耗,占用工作集数据内存 (过期数据行可能分散 InnoDB 的 page 中),影响数据...
阅读全文 »

1、 没有 WHERE 子句2、 使用 IS NULL 和 IS NOT NULL , 以下语句 comm 列的索引会失效 1SELECT * FROM emp WHERE comm IS NULL; 3、 WHERE 子句中使用函数如果没有使用基于函数的索引,那么 where 子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。例如: 1select * from staff where ...
阅读全文 »

之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。 确实,在 Java 的世界里,似乎我们不用对垃圾回收那么的专注,很多初学者不懂 GC,也依然能写出一个能用甚至还不错的程序或系统。但其实这并不代表 Java 的 GC 就不重要。相反,它是那么的重要和复杂,以至于出了问题,那些初学者除了打开 GC 日志,看着一堆 0101 ...
阅读全文 »

本文将介绍如何把自己开发出来的 jar 包发布到 Maven 中央仓库,以便将好用的工具共享给其他需要的人. 第一步 注册 jira 账号,将 jira 账号名密码 配置到 maven 的 settings.xml 文件中JIRA 注册地址 修改 mavan 配置文件 settings.xml ,加入以下配置 123456789101112<servers> <server>...
阅读全文 »

Maven 可以根据已有的项目模板来快速构建项目,避免重复的搭建相同的项目开发环境。 首先确保本地正确安装了 JDK 及 Maven 自定义 archetype1、首先需要创建一个 Maven 项目,或者使用现有 Maven 项目,在项目根目录下执行以下命令 1mvn archetype:create-from-project 2、执行成功后,可以看到在项目多了一个 target 文件夹,目录如下...
阅读全文 »

作为一个开发者,通常会拥有公司与 github/gitlab 等多个账户,在不同项目下开发时,commit 的用户名和邮箱是不同的,例如公司项目中,使用的是本名+公司邮箱,而 github 项目中使用的是个人邮箱和昵称。 首先,我们需要了解一下 Git 配置文件生效的优先级。对于一个 Git 仓库来说,配置优先级为 仓库 > 全局 > 系统。操作 Git 时,首先会查找/etc/git...
阅读全文 »

一般来说,下图这些命令已经足够日常使用。但是有些时候,我们还需要使用其它的一些不太常用的命令。 下面是我整理的常用 Git 命令。 Git 配置类命令 基本上换电脑,或者需要添加/切换远程仓库的时候 才能用到 第一步:首先配置用户名和邮箱1234#配置或切换 git 用户名: git config --global user.name "YOUR USERNAME"# 配置或切...
阅读全文 »

版本号命名规则 本文根据 Semantic Versionning 2.0.0 和 Semantic Versioning 3.0.0 选择性的整理出版本号命名规则指南。 版本号的格式为 X.Y.Z(又称 Major.Minor.Patch),递增的规则为:123X 表示主版本号,当 API 的兼容性变化时,X 需递增,Y 和 Z 同时设置为 0。Y 表示次版本号,当增加功能(不影响 API 的兼...
阅读全文 »