您现在的位置是: 首页> 学无止境> Mysql> Mysql

Mysql优化1:建表原则

陈健2021-05-11 13:25Mysql1663人已围观

建表三大原则:

  • 定长和变长分离
  • 常用字段和不常用字段分离
  • 使用冗余字段或冗余表

1、定长与变长分离

如 id int,占4个字节,char(4)占4个字符长度,也是定长,time

即每一个单元值占的字节是固定的。在磁盘上查找时,由于每一行长度固定,比如长度为10000,查下一条时只需查+10001位置的数据。

而varchar,text,blog等变长字段,适合单放一张表,用主键和核心表关联起来。

2、常用字段和不常用字段分离

需要结合具体业务分析,分析字段的查询场景,查询场景频度低的字段,单拆出来。

3、在1对多,需要关联统计的字段上,添加冗余字段

这一条与一般的设计理念冲突。但是在某些业务场景下,很好使用。

比如,有两张表,表1用户表,表2用户-订单表,在查询表1用户时,同时需要知道用户下订单数量的总数,为了获取这个总数需要在表2上count一下。这种情况可以在表1增加一个用户订单总数的冗余字段,每往表2插入一个用户订单时,表1的用户订单总数冗余字段加1。这样查询用户下订单总数时,可以直接用该冗余字段,不需要额外查表2.

添加冗余字段,是一种“牺牲空间来换取时间”的方法。

在计算机的优化中,说来说去其实就两个优化:1、牺牲时间换空间;2、牺牲空间换时间。

多年前,内存宝贵时,空间小,程序员不得不一个字节一个字节扣,尽量少使用内存;如今硬件是白菜价,更倾向于用空间来换时间,东西都往内存里扔,换来时间响应的提升。

点赞(0) 打赏

文章评论 共有 0 条评论

暂无评论

本栏推荐

猜你喜欢

站点信息

  • 建站时间:2018年10月24日
  • 网站程序:fastadmin
  • 文章统计301篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信号:zwj982215226

打赏本站

  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!
  • 微信扫码:你说多少就多少~
  • 支付宝扫码:你说多少就多少~

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部