>[danger]### 字段Tips:
* 根据业务区分使用tinyint/int/bigint,分别会占用1/4/8字节
* 根据业务区分使用char/varchar
* 字段必须定义为NOT NULL并且提供默认值。
* 显式指定自增 int/bigint 作为主键。
* 字符集统一使用utf8。
* 存储emoj表情,使用UTF8mb4
* 时间类尽量使用int类型,`timestamp`仅占用4字节,业务要求可设置为datetime或者TIMESTAMP等
* IPv4地址采用4字节int unsigned。
* 使用TINYINT来代替ENUM类型 。
* 不推荐使用`blob`,`text`等类型。它们都比较浪费硬盘和内存空间,影响系统性能。
* 存储金钱的字段,【建议】用`int`,程序端乘以100和除以100进行存取。因为`int`占用4字节,而`double`占用8字节,空间浪费。
***
>[danger]### 表
* 单实例表个数必须控制在2000个以内
* 单表分表个数必须控制在1024个以内
* 表必须有主键,推荐使用UNSIGNED整数为主键
***
>>[warning]关于NULL
* NULL的列使用索引,索引统计,值都更加复杂,MySQL更难优化
* NULL需要更多的存储空间
* NULL只能采用IS NULL或者IS NOT NULL,而在=/!=/in/not in时有大坑
***
<br>
详细存储大小参加下图:
![](https://img.kancloud.cn/1e/fe/1efe467f830c762ad48eeaa1234dfd3a_736x556.png)
- 序言
- 为什么要编码规范?
- 如何进行编码规范?
- 编码规范宏观微观细节
- PHP编码规范
- 基础规范
- 1 语法规范
- 2 变量命名规范
- 3 常量命名规范
- 4 类命名规范
- 5 函数命名规范
- 6 方法命名规范
- PSR-规范
- 基本代码规范
- Tp项目规范
- TP命名规范
- Tp目录规范
- Tp基础目录构架
- Tp项目开发思考
- Tp控制器规范
- 控制器构架
- Tp模型规范
- 模型性能优化
- Tp业务规范
- 返回结构规范
- 业务异常规范
- Tp输出规范
- Restful API
- 模板渲染输出
- Tp异常规范
- 异常码状态码
- 异常输出方式
- Tp验证规范
- Tp路由规范
- Tp加密规范
- Password Hashing
- Tp缓存规范
- 常见数据缓存
- 缓存设计思考
- Tp日志规范
- 日志信息
- 日志分析
- Tp日志接管分析
- Tp性能优化
- vendor包规范
- 项目自动化思考
- 项目检测告警思考
- 项目注释规范
- Mysql设计规范
- 序言
- 命名规范
- 表及字段规范
- 索引规范
- 索引原理
- Sql规范
- 事务规范
- 读写分离
- 乐观锁悲观锁
- 数据库审计
- 性能优化
- 查询优化神器
- 慢查询优化步骤
- 分库分表、分区表
- 根据sql日志筛选数据
- 设计原则
- MongoDB规范
- MongoDB基础
- MongoDB设计
- MongoDB安全性
- MongoDB备份
- 操作手册规范
- API文档说明规范
- 管理端操作手册
- 用户使用说明书
- 溯源项目构想