Mysql Example

table example

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE `table_name` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(254) DEFAULT '',
`chips` bigint unsigned NOT NULL,
`status` tinyint unsigned NOT NULL,
`time` int(10) unsigned NOT NULL,
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
PRIMARY KEY (`id`),
UNIQUE KEY `uni_name` (`name`),
KEY `idx_time` (`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 每张表都有主键 id

  • 所有 int 确定非负数都使用 unsigned 避免浪费范围

  • varchar(255) 不是 256, 方便 InnoDB 建索引, 少申请一个字节

  • linux 时间戳使用 int(11) unsigned, 因为已经达到目前 linux 标准范围, 超出部分现有大部分语言时间戳函数无法识别

  • 习惯使用 created_time, updated_time 字段, 默认是让 mysql 自动记录时间

  • 索引命名例子, uni_xxx 表示 unique key, idx_xxx 表示普通索引, 默认 btree, 非 hash 索引不用写上定义

  • tinyint 一个字节 smallint 两个字节 MEDIUMINT 三个字节, 状态字段一般 tinyint unsigned (0-255)

  • 非特殊用途, 一律 NOT NULL, varchar default ‘’ 而不是 NULL, ‘’不占用字节, NULL 占用字节

  • 使用下划线命名, 而不是驼峰, mysql 内部默认大小写不敏感

关于 int 类型

  • 定义
类型 存储 容量 范围 unsigned 展示位
tinyint 1 Byte 2^8 -128 ~ 127 0 ~ 255 3
smallint 2 Byte 2^16 - 0 ~ 65535 5
mediumint 3 Byte 2^24 - 0 ~ 16,777,215 (1600 万+) 8
int 4 Byte 2^32 -2147483648 ~ 2147483647 0 ~ 4,294,967,295 (42 亿+) 10
bigint 8 Byte 2^64 - 0 ~ 18446744073709551615 20
  • int(M) M 为展示位数, 与实际存储容量无关, 对应类型存储的最大值和最小值是固定的

  • 因为符号位存在, 一般 int(11) 和 unsigned int(10)

  • 不设置 fillzero 补零, unsigned 的 int(11) 与 int(10) 无区别, 一般设置为 int(11) 预留可转换符号

Markdown 语法

基础语法

符号

* - + . >

标题

# 一级
## 二级
### 三级
...
###### 六级

列表

无序

+ / - / * 任选之一
+ a
+ b
+ c
  • a

  • b

  • c

有序

1. a
2. b
3. c
  1. a
  2. b
  3. c

代码

1
fmt.Print('Hello world')
1
fmt.Print('Hello world')

链接

[google](https//google.com)

google

图片

![google](https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1095248724,1544543965&fm=26&gp=0.jpg)

google

表格

title | text
--- | ---
markdown | markdown text
title text
markdown markdown text

引用

> 引用内容、说明内容。
>> 二级引用
...
>>>>>> 六级

引用内容、说明内容。

二级引用

六级

扩展

mermaid

document