mongodb使用和操作教程
1. 数据结构
1.1 数据类型
- null :null 类型用于表示空值或不存在的字段。
{"x":null} - 布尔类型:布尔类型的值可以为 true 或者 false。
{"x":true} - 数值类型:shell 默认使用 64 位的浮点数来表示数值类型。
{"x":3.14}。对于整数,可以使用 NumberInt 或 NumberLong 类,它们分别表示 4 字节和 8 字节的有符号整数。对于整数,可以使用 NumberInt 或 NumberLong 类,它们分别表示 4 字节和 8 字节的有符号整数。{"x":NumberInt("3") {"x":NumberLong("3") - 字符串类型:
{"x":"foobar"} - 日期类型:MongoDB 会将日期存储为 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数,不包含时区信息。
{"x":new Date()} - 正则表达式:
{"x": /foobar/i} - 数组类型:
{"x":["a","b","c"]} - 内嵌文档:
{"x":{"foo":"bar"}} - Object ID: Object ID 是一个 12 字节的 ID,是文档的唯一标识。
{"x": ObjectId()} - 二进制数据: 二进制数据是任意字节的字符串,不能通过 shell 操作。如果要将非 UTF-8 字符串存入数据库,那么使用二进制数据是唯一的方法。
- 代码: MongoDB 还可以在查询和文档中存储任意的 JavaScript 代码。
mongodb的各种GUI客户端的使用和破解
体验市面上常用的mongodb GUI客户端,做一个总结。
mac设置默认输入法
中文输入法作为首选输入法, 简单一步, 却能让你使用 macOS 的幸福感提升一大截。
数据库历史版本介绍
1. mysql
| 版本 | 事件 | 时间 | New |
|---|---|---|---|
| 1.0 | 1995 | 仅供内部使用 | |
| 3.11.1 | 1996 | First release | |
| 4.0 | 2002 | 查询缓存,联合,全文,InnoDB | |
| 5.0 | 2005 | 存储的Routies,视图,游标,触发器,XA事务,I_S | |
| 5.1 | 2008-11-14 | 事件调度程序,分类,插件API,RBR,InnoDB插件,MySQL群集 | |
| 5.5 | 2010-12-03 | InnoDB代替MyISAM成为MySQL默认的存储引擎。 | |
| 5.6 | 2013-02-05 | 在线DDL,GTID,并行复制,ICP,MRR……MySQL 5.6是MySQL历史上一个里程碑式的版本,这也是目前生产上应用得最广泛的版本。 | https://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html |
| 5.7 | 2015-10-21 | 组复制,InnoDB Cluster,多源复制, JSON支持 | https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html |
| 8.0 | 2018-04-19 | 不可见索引,降序索引 | https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html |
mysql的不同log类型
MySQL 更新语句的流程会涉及到 undo log(回滚日志)、redo log(重做日志) 、binlog (归档日志)这三种日志。
- undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。
- redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复。
- binlog (归档日志):是 Server 层生成的日志(和存储引擎无关),主要用于数据备份和主从复制。
mysql的数据类型
1. mysql 数值数据类型
MySQL支持所有标准的SQL数值数据类型。这些类型包括精确的数字数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC,以及近似数字数据类型(FLOAT、REAL和DOUBLE PRECISION)。
INT是INTEGER的同义词。
DEC, FIXED, NUMERIC是DECIMAL的同义词。
DOUBLE视为DOUBLE PRECISION(非标准扩展)的同义词。
REAL视为DOUBLE PRECISION(非标准变体)的同义词,除非启用REAL_AS_FLOAT SQL模式。
从MySQL8.0.17开始,ZEROFILL属性不推荐用于数值数据类型,在未来的MySQL版本中,对它的支持将被删除。
mysql的join介绍
git的cherry-pick的使用
1. Cherry-pick 是什么,何时该用
一句话:把别处的某几个 commit 复制到当前分支,每次产生新的 commit hash。
跟 merge / rebase 的本质区别在粒度:
- merge / rebase 处理整条分支的所有提交
- cherry-pick 处理你点名的几个提交
什么时候考虑它:
- 线上 bug 修复在 develop 上做了,需要同步到 release / main(hotfix 回灌)
- 跨仓库 / 跨分支只想要某个同事的某次提交
- release 分支上挑选验证通过的功能上线
什么时候别用它(先想其他方案):
- 想把整条 feature 分支搬过去,用 merge / rebase
- 想撤销某个已 push 的提交,用 revert
- 长生命分支日常同步,用 merge,cherry-pick 会埋陷阱(见第 3 节)
记一句:cherry-pick 是「挑几个」,不是「搬一片」。下面进入具体用法。