【Mysql架构设计】第四章 Mysql数据结构优化

一、数据库设计范式

1.1、第一范式

【Mysql架构设计】第四章 Mysql数据结构优化

1.2、第二范式

【Mysql架构设计】第四章 Mysql数据结构优化

1.3、第三范式

【Mysql架构设计】第四章 Mysql数据结构优化

二、反范式设计

【Mysql架构设计】第四章 Mysql数据结构优化

三、数据类型选择

【Mysql架构设计】第四章 Mysql数据结构优化

3.1、整数类型

【Mysql架构设计】第四章 Mysql数据结构优化

3.2、实数类型

【Mysql架构设计】第四章 Mysql数据结构优化

3.3、VARCHAR和CHAR类型

【Mysql架构设计】第四章 Mysql数据结构优化

【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化

3.4、日期类型

3.4.1、DATATIME

【Mysql架构设计】第四章 Mysql数据结构优化
如果设置时间列长度为6的时候,则可以存储毫秒值
【Mysql架构设计】第四章 Mysql数据结构优化

3.4.2、TIMESTAMP

【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化
默认情况下,只有第一个timestamp列的值会自动更新。可以在表设计的时候设置
【Mysql架构设计】第四章 Mysql数据结构优化

3.4.3、date和time类型

如果存储生日这样的只需要精确到日的时间的时候,则可以使用date类型。
【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化
【Mysql架构设计】第四章 Mysql数据结构优化

3.4.4、存储日期时间数据的注意事项

【Mysql架构设计】第四章 Mysql数据结构优化

3.5、为Innodb选择主键

【Mysql架构设计】第四章 Mysql数据结构优化