MYSQL 合理建表 并优化 实例

建表案例,某高端白领私密社交网站

主键id

用户名

性别

体重(KG)

生日

工资

上次登陆

个人简介

Int 

Username

gender

weight

birth

salary

Lastlogin

intro

列名称

列类型

默认值

是否主键

Id

Int unsigned

PRI

Username

Varchar(20)

''

gender

Char(1) /tinyint

weight

Tinyint unsigned

Birth

Date

Salary

Decimal(8,2) 

lastlogin

Datetime

intro

Varchar(1500)

这张表不够好,可以优化

分析:这张表除了username/intro列之外,每一列都是定长的.

我们不妨让其所有列,都定长,可以极大提高查询速度.

列名称

列类型

默认值

是否主键

Id

Int unsigned

PRI

Username

char(20)

''

gender

Char(1) /tinyint

weight

Tinyint unsigned

Birth

Date

Salary

Decimal(8,2)

lastlogin

Int unsigned

Username char(20) 是会造成空间的浪费,但是提高的速度,.

Intro char(1500) 却浪费的太多了,另一方面,人的简介,一旦注册完,改的频率也并不高.

我们可以把 intro列单独拿出来,另放一张表里.

列名称

列类型

默认值

是否主键

Id

Int unsigned

PRI

Username

char(20)

''

intro

Varchar(1500)

在开发中,会员的信息优化往往是 把频繁用到的信息,优先考虑效率,存储到一张表中.

不常用的信息和比较占据空间的信息,优先考虑空间占用,存储到辅表中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值