MySQL学习笔记(四)

学习地址 p14

网站建表实战及优化分析

在开发中,把频繁用到的信息优先考虑效率,储存到一张表中
不常用的信息和比较占据空间的信息优先考虑空间效率,存储到辅表中

  • 分析需求
  • 建立数据字典
    员工信息例子:
列名称 列类型 默认值 是否主键
Id Int unsigned PRI
Username Varchar(20) ‘’
gender Char(1)/Tinyint
Weigth Tinyint unsigned
Birth Date
Salary Decimal(8,2)
lastlogin Int unsigned
Introduce Varchar(1500)
  • 优化
    除了Username和Introduce外,其他都是定长的。
    从时间上优化,不妨让所有的列都是定长的,可以极大提高查询效率。
    从空间上优化,Introduce列是否常用或者常改动,考虑这些我们把它单独拿出来新建一张表。
列名称 列类型 默认值 是否主键
Id Int unsigned PRI
Username Char(20) ‘’
gender Char(1)/Tinyint
Weigth Tinyint unsigned
Birth Date
Salary Decimal(8,2)
lastlogin Int unsigned
列名称 列类型 默认值 是否主键
Id Int unsigned PRI
Username Char(20) ‘’
Introduce Varchar(1500)
  • 建表
    用到建表语法
    实质是一个声明列的过程
    Create table 表名(
    列名1 列类型1 列1参数,
    列名2 列类型2 列2参数,


    列名n 列类型n 列n参数
    )engine Innodb/mysiam/bdb charset utf8/gbk/latin1…

建立一个学生成绩/学籍管理系统

  • 占坑