博客
关于我
mysql数据库设计
阅读量:791 次
发布时间: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学习总结(41)——MySql数据库基本语句再体会
查看>>
Mysql学习总结(42)——MySql常用脚本大全
查看>>
Mysql学习总结(43)——MySQL主从复制详细配置
查看>>
Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
查看>>
Mysql学习总结(45)——Mysql视图和事务
查看>>
Mysql学习总结(46)——8种常被忽视的SQL错误用法
查看>>
Mysql学习总结(48)——MySql的日志与备份还原
查看>>
Mysql学习总结(49)——从开发规范、选型、拆分到减压
查看>>
Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
查看>>
Mysql学习总结(56)——MySQL用户管理和权限设置
查看>>
Mysql学习总结(58)——深入理解Mysql的四种隔离级别
查看>>
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>