首页 / MYSQL / MySQL性能优化(三)表结构优化
MySQL性能优化(三)表结构优化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL性能优化(三)表结构优化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2450字,纯文字阅读大概需要4分钟。
内容图文
![MySQL性能优化(三)表结构优化](/upload/InfoBanner/zyjiaocheng/513/8a074b4aa0b845e3b81e2b05e7c5a27a.jpg)
一、选择合适的数据类型
1.使用可以存下你的数据的最小的数据类型。
2.使用简单的数据类型。int要比varchar类型在mysql处理上更简单。
3.尽可能的使用not null定义字段。
4.尽量少用text类型,非用不可时最好考虑分表。
*使用int来存储日志时间,利用FROM_UNIXTINE()(得到日期),UNIX_TIMESTAMP()(得到时间戳)两个函数来进行转换
*使用bigint来存ip地址,利用INET_ATON(),INET_NTOA()两个函数来进行转换
二、表的范式和反范式化设计
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
先介绍一下数据库范式定义,如下
第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
说明:每一列属性都是不可再分的属性值,确保每一列的原子性。两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。
说明:每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF。
说明:数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a-->b-->c 属性之间含有这样的关系,是不符合第三范式的。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1、基于范式优化用法
范式化是指数据库设计的规范,目前说到范式化一般是指第三设计范式,也就是要求数据表中不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式。
不符合第三范式要求的表存在下列问题:
1.数据冗余:(分类,分类描述)对于每一个商品都会进行记录
2.数据的插入异常
3.数据的更新异常
4.数据的删除异常
2、基于反范式优化用法
反范式化是指为了查询效率的考虑把原本符合第三范式的表适当的增加冗余,以达到优化查询的目的,反范式化是一种以空间来换取时间的操作。
这是在学习慕课网《性能优化之MySQL优化》视频时及参考别人做的记录整理的。
MySQL性能优化(三)表结构优化
标签:整理 直接 from sql优化 int time on() 2nf 定义
本文系统来源:https://www.cnblogs.com/lovechengyu/p/11491419.html
内容总结
以上是互联网集市为您收集整理的MySQL性能优化(三)表结构优化全部内容,希望文章能够帮你解决MySQL性能优化(三)表结构优化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。