MYSQL 合理建表 并优化 实例

来源:互联网 发布:搞笑爱情电影 知乎 编辑:程序博客网 时间:2024/06/07 05:56

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

主键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)

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

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

原创粉丝点击