博客
关于我
mysql数据库设计
阅读量:788 次
发布时间:2023-02-12

本文共 2084 字,大约阅读时间需要 6 分钟。

数据类型

数据类型是数据库设计中最重要的组成部分之一。不同的数据类型在存储、处理和处理数据时有不同的特性和限制。以下是常见的数据库数据类型及其详细信息:

1.1 类型对比

类型 存储字节 备注 最小值(带符号) 最大值(带符号) 最小值(无符号) 最大值(无符号)
tinyint(length) 1 无符号范围:0-255
带符号范围:-128 到 127
0 255 0 255
smallint(length) 2 无符号范围:0-65535
带符号范围:-32768 到 32767
0 65535 0 65535
mediumint(length) 3 无符号范围:0-16777215
带符号范围:-8388608 到 8388607
0 16777215 0 16777215
int(length) 4 无符号范围:0-4294967295
带符号范围:-2147483648 到 2147483647
0 4294967295 0 4294967295
bigint(length) 8 无符号范围:0-18446744073709551615
带符号范围:-9223372036854775808 到 9223372036854775807
0 18446744073709551615 0 18446744073709551615
float(length, decimals) 4 具有浮动小数点的较小的数,支持小数点
默认小数位数:4
- + - +
double(length, decimals) 8 具有浮动小数点的较大的数,支持更多小数位数 - + - +
decimal(length, decimals) 1-2字节 存储为字符串,允许固定小数点 - + - +
date 3 YYYY-MM-DD 格式,日期范围:1000-01-01 到 9999-12-31 - + - +
time 3 HH:MM:SS 格式,时间范围:00:00:00 到 23:59:59 - + - +
timestamp 4 YYYYMMDDHHMMSS 格式,范围终止于2037年 - + - +
datetime 8 YYYY-MM-DD HH:MM:SS 格式,范围终止于9999-12-31 23:59:59 - + - +
char(length) length字节 定长字段,长度范围:0-255 - + - +
varchar(length) length+1-2字节 变长字段,长度范围:0-65535 - + - +
tinytext length+1字节 字符串字段,最大长度为255 - + - +
text length+2字节 字符串字段,最大长度为65535 - + - +
mediumint(length) length+3字节 字符串字段,最大长度为16 777 215 - + - +
longtext length+4字节 字符串字段,最大长度为4 294 967 295 - + - +

1.2 数据类型选择建议

  • 整数类型:优先选择 tinyintsmallint,适用于占用字节最少的整数字段。
  • 浮点数和双精度数:根据需要选择 floatdouble,注意 double 的精度更高。
  • 字符串类型:根据字段长度选择 charvarcharvarchar 更适合变长字段。
  • 日期时间类型:根据具体需求选择 datetimetimestampdatetime
  • 大整数类型:对于大范围的整数值,优先选择 bigintlongint

表和库设计推荐

2.1 数据库设计原则

  • 非 NULL 属性:所有字段应设置为 NOT NULL,业务需求如需默认值可自定义。
  • 默认值:通过设置默认值替代 NULL,避免三值逻辑运算。
  • 时间戳:在活跃数据表中添加 create_timeupdate_time 字段。

2.2字段类型建议

  • 状态字段(statustype:使用 tinyintsmallint,占用字节最少。
  • 自增列:推荐使用 bigint 类型,命名为 id

2.3 数据库性能优化

  • 选择合适的数据类型:避免使用过大的数据类型,减少存储开销。
  • 索引优化:根据查询需求合理索引,提升查询性能。
  • ** Partitioning**:对于大表,考虑分区存储,提升查询效率。

比较

3.1 字符类型对比

  • char:长度固定,存储效率高,适合定长字符串。
  • varchar:长度可变,存储效率稍低,适合变长字段。

3.2 整数类型对比

  • tinyint(1)tinyint(3):相同,占用1字节。
  • int(1) vs tinyint(1):优先选择 tinyint(1),节省空间。
  • tinyint:1字节,smallint:2字节,mediumint:3字节,int:4字节,bigint:8字节。

通过合理选择数据类型,可以显著提升数据库的性能和可维护性。

转载地址:http://njdfk.baihongyu.com/

你可能感兴趣的文章
Mysql性能优化(2):数据库索引
查看>>
Mysql性能优化(3):分析执行计划
查看>>
Mysql性能优化(4):优化的注意事项
查看>>
Mysql性能优化(5):主从同步原理与实现
查看>>
Mysql性能优化(6):读写分离
查看>>
MySQL性能优化(八)--
查看>>
MySQL性能测试及调优中的死锁处理方法
查看>>
mysql性能测试工具选择 mysql软件测试
查看>>
mysql恢复root密码
查看>>
Mysql悲观锁
查看>>
MySQL慢查询-开启慢查询
查看>>
MySQL慢查询分析和性能优化的方法和技巧
查看>>
MySQL慢查询日志总结
查看>>
Mysql慢查询日志,查询截取分析
查看>>
MySQL慢查询问题排查
查看>>
mysql截取sql语句
查看>>
mysql截取身份证号前几位_EXCEL中怎样截取身份证号前六位数字
查看>>
mysql手工注入
查看>>
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
查看>>
Mysql执行update by id的过程
查看>>