数据库调优教程(十一) 设计一张漂亮的表

原创 2015年04月11日 09:11:28

四、           设计一张漂亮的表


上一章讲了如何通过索引来提速我们的查询语句,这一章让我们回到数据库开发的初始阶段,建表。谈谈怎样设计一张漂亮的表。


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/数据库名   目录下



本章结束,下一章将谈谈sql语句的优化方法。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzy38324/article/details/44992649

数据库设计教程

  • 2017年10月11日 10:29
  • 18.2MB
  • 下载

数据库设计教程(第二版)pdf

  • 2012年04月10日 15:53
  • 37.98MB
  • 下载

菜鸟也能飞:SQL数据库实战专业教程(二)

四、需求分析→数据库设计       从这开始,就真正进入项目实战啦。先说点体会,我刚开始接触编程的时候,都是编写一些小东西,往往都是半天或者一天什么的就编完了,那时候根本没想过做程序之前还要有...
  • yangyuankp
  • yangyuankp
  • 2012-04-19 13:06:54
  • 4807

数据库SQL优化大总结之 百万级数据库优化方案

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉...
  • zhushuai1221
  • zhushuai1221
  • 2016-06-23 09:43:50
  • 43884

<em>数据库设计</em>与开发<em>教程</em>

举报人: 被举报人: chieffon 举报的资源分: 3 *类型: *详细原因: 取  消 提  交 <em>数据库设计</em>与开发<em>教程</em> 3积分 立即下载 ...
  • 2018年04月09日 00:00

SQL Server<em>数据库设计</em>与系统开发<em>教程</em>

被举报人: f_zg666 举报的资源分: 5 *类型: *详细原因: 取  消 提  交 SQL Server<em>数据库设计</em>与系统开发<em>教程</em> 5积分 立即下载 ...
  • 2018年04月09日 00:00

数据库调优教程(十二) 优化sql语句

上一章讲了如何设计一张好的表,一张好的表自然需要好的sql语句去操作它。本章就来聊聊如何优化sql语句。...
  • hzy38324
  • hzy38324
  • 2015-04-11 09:35:05
  • 6082

数据库调优教程(十三) MySQL数据库其他优化方法

最后一章,谈谈前面没有涉及的一些优化方法。
  • hzy38324
  • hzy38324
  • 2015-04-11 12:19:42
  • 2091

数据库调优教程(十一) 设计一张漂亮的表

上一章讲了如何通过索引来提速我们的查询语句,这一章让我们回到数据库开发的初始阶段,建表。谈谈怎样设计一张漂亮的表。...
  • hzy38324
  • hzy38324
  • 2015-04-11 09:11:28
  • 2142

教学管理系统 <em>数据库设计</em> SQL 源代码与报告 完整

来自广东工业大学教学管理系统 <em>数据库</em>课程<em>设计</em> SQL-Server 源代码工程与报告 非常完整………一、课程<em>设计</em>题目 完成一个实际系统的<em>数据库</em>应用系统的...
  • 2018年04月09日 00:00
收藏助手
不良信息举报
您举报文章:数据库调优教程(十一) 设计一张漂亮的表
举报原因:
原因补充:

(最多只允许输入30个字)