MySQL:Schema与数据类型优化

本文详细介绍了MySQL中各种数据类型的特性,包括整数、实数、字符串、日期时间、位数据等,探讨了如何合理选择数据类型以提高数据库性能。同时,文章还提到了范式与反范式的应用原则,以及在不提供服务的机器上执行alter table操作的策略。

1 基本数据类型

简单,尽量避免NULL

1.1 整数类型

类型tinyintsmallintmediumintintbigint-unsigned
空间816343264不变
范围-2(N-1) ~2(N-1) -1----0~2N

int(11)指定位数,对于大多数应用没有意义;不会限制合法范围,只是规定了一些交互工具显示字符的个数。

1.2 实数类型

float, decimal

1.3 字符串类型

  1. varchar 变长字符串
  2. char 定长字符
  3. BLOB 存储很大数据,二进制方式,没有排序规则和字符集
  4. TEXT 存储很大数据,字符方式,有字符集和排序规则
    使用枚举代替字符串,enum(“fish”, “apple”),但是枚举内部仍然是数字

1.4 枚举

1.5 日期和时间类型

  1. datetime 1001-9999 精度为秒,与时区无关,8个字节存储
  2. timestamp 4个字节存储
  3. 使用bigint存储毫秒级别的时间戳

1.6 位数据类型

bit(1-64) 0或1的字符串 谨慎使用

1.7 标识符

unsigned, auto_increment
存储UUID时,应当移除’-’

2 范式

混用范式与反范式

3 Alter table

  • 在一台不提供服务的机器上执行alter table
  • 影子拷贝

参考文献

高性能mysql

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值