跳转至

MySQL 数据库设计

时间:2019-05-30 14:50:25

数据库表设计

存储引擎

  1. 出于对对稳定性和数据安全的考虑一般选择 InnoDB, 当对数据安全要求不是很高,想要提升一定的速度可以选择 MyISAM

字段类型选择

  1. 满足项目需求,考虑扩展和最坏情况。
  2. 表示清晰。
  3. 占用空间尽量小,尽量使用小的数据类型,基础类型如 int 指定长度与否不会底层存储的长度都是 32 位。
  4. 字段尽量设置为 NOT NULL, 且设置默认值。
  5. 金额等精度要求较高的数字使用 Decimal,占用空间大,其余情况尽量避免使用。
  6. 字符串存储 charvarchar,参考注意事项。
  7. IP地址32位无符号整数存储。

注意:

  1. int(100) int(20): 字段字段占用的长度是一样的。
  2. char(100):字段占用长度就是100。
  3. varchar(100): 字段占用的长度是实际存储的数据长度加上表示字段长度的字节数(1[0-255]或2[256-2^16-1])
  4. int 长度为32。有符号最大值为 2147483647,存储的最大日期为 2038-01-19 11:14:07。 无符号最大值为 4294967295,存储的最大日期为 2106-02-07 14:28:15

字符编码

  1. 推荐使用 utf8mb4 可以存储所有类型的字符。也可以根据实际情况指定行的编码。