数据库调优教程(十一) 设计一张漂亮的表
来源:互联网 发布:琉璃神社换的域名2017 编辑:程序博客网 时间:2024/06/01 09:01
四、 设计一张漂亮的表
上一章讲了如何通过索引来提速我们的查询语句,这一章让我们回到数据库开发的初始阶段,建表。谈谈怎样设计一张漂亮的表。
1. 满足三范式
1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sqlserver),就自动的满足1NF
数据库的分类
关系型数据库: mysql/oracle/db2/informix/sysbase/sql server
非关系型数据库: 面向对象或者集合
面向文档数据库: MongoDB
2NF: 表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现。一般情况下,表中都必须设置主键,并且一般不含业务逻辑,可以设置为自增长。
3NF: 即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.
有时候为了减少查询次数,可以容忍冗余。
2. 字段数目不要过多
一张表的字段过于庞大,会导致查询时的扫描范围加大,即使你并没有查询相应字段。
所以,如果一张表某个字段,信息量大,但是我们很少查询,则可以考虑把这些字段,单独的放入到一张表中,这种方式称为垂直分割
3. 选择合适的字段类型
在创建表的时候要选取最适用的字段属性。
一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小
举个例子
11位的手机号
有两种类型可以存储
Bigint、char(11)。Int类型最大2147483647不可存
考虑到Bigint占20字节,而char(11)占11*2=22(gbk)或11*3=33(utf-8),所以使用bigInt是最好的。
如果在创建表之后发现表的字段设置不够合理想修改时怎么修改呢?
4. 修改表结构
如果发现表的字段设置不够合理想修改时怎么修改呢,有两种方法。
传统方法
先使用show createtable 查看原先怎样创建字段的
然后就可以根据需要修改了
- alter table patent_data modify mingcheng varchar(500) DEFAULT NULL COMMENT '名称';
快速方法(简单粗暴而高效)
创建一个结构是你所需要的空表,关闭mysql,在文件夹中直接复制新生成的表的frm文件替换掉原来表的的frm文件
注:
Frm文件位于mysql安装目录下的 /data/数据库名 目录下
- 数据库调优教程(十一) 设计一张漂亮的表
- 数据库调优教程(十一) 设计一张漂亮的表
- 聪明只是一张漂亮的糖纸
- PS经典教程:从零开始设计一个漂亮的网页
- PS经典教程:从零开始设计一个漂亮的网页
- mysql数据库操作(将一张表的数据插入到另外一张表中)
- hdu1278 漂亮面料的设计(模拟)
- 漂亮的UI设计
- 电子商务系统的设计与实现(十一):数据库设计
- 电子商务系统的设计与实现(十一):数据库设计
- 电子商务系统的设计与实现(十一):数据库设计
- 电子商务系统的设计与实现(十一):数据库设计
- 电子商务系统的设计与实现(十一):数据库设计
- 漂亮的图标制作教程
- 转置(旋转)一张数据库表
- 分享一张innodb结构图--出自韩国人画的很漂亮
- 发一张你认为很漂亮的美女照片?
- 分享一张innodb结构图--出自韩国人画的很漂亮
- 设计模式-动态代理 实现机制
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- jq的扩展函数解析
- 单车福音 自行车智能设备 让自行车“不怕丢
- 作业:顺序图片显示器
- 数据库调优教程(十一) 设计一张漂亮的表
- 二维图形的几何变换
- 结构-02. 有理数加法(15)
- 安卓之全局变量在自定义类里的使用
- Linux makefile 教程 非常详细,且易懂
- 机器学习-R-特征选择
- linux下如何创建库文件
- Dancing Link基础题2
- 参加蓝桥杯感受