Mysql的笔记 - 优化schema3

本文探讨了MySQL性能优化的关键点,包括选择合适的数据类型以节省资源和提高查询效率,以及数据库设计中应避免的缺陷。强调了避免NULL、选择简单数据类型和适当规范化的重要性。同时,介绍了范式化与反范式化的权衡,指出在某些场景下反范式化可能带来性能提升。
摘要由CSDN通过智能技术生成

良好的逻辑设计和物理设计是高性能的基石.根据系统要执行的查询语句来设计Schema(数据库的组织和结构).

1.选择合适的数据类型

原则:

1.更小的通常更好

    尽量使用可以正确存储数据的最小数据类型,更小的数据类型可以更少的占用磁盘,内存和CPU缓存,并且处理时需要的CPU周期更少.

PS:但是要确保没有低估要存储的值得范围,如果无法确定用哪一个数据类型,那么就选择你认为的可以不会超过范围的最小的数据类型.

2.简单就好

   简单地数据类型操作需要更少的CPU周期.

3.尽量避免NULL

    如果查询中包含NULL值,对于Mysql是更难优化的.

包含NULL的列使得索引,索引统计和值比较变得较为复杂,会需要更多的存储空间,mysql也会特殊处理,当被设置为索引时,每个索引记录会需要额外的字节.通常把列设置为Not Null,可以减少性能的开销.

首先应明确合适的大类型.第二步选择具体类型.

1.整数类型

  存储空间位数(N) 存储值范围 (N-1) 指数 存储值范围 (N-1) 指数
tinyint 8 -2(N-1) 2(N-1)-1
smallint 16
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值