MySQL数据库系列之数据库设计原则
MySQL中数据库设计原则:
1.一般情况下,应该尽量使用可以正确存储数据的最小数据类型。数据类型不一样,存储的执行效率也不一样。最好使用适度的整型数据类型,例如int之类的数据,这样在做查询或者字段排序的时候速度是最快的。
2.尽量避免NULL值的时候,因为这样会增加数据库处理的开销。但是也要考虑实际情况,不要一味的为了避免空值而全部设置为not null,具体的设置情况要根据项目的具体业务来。
3.注意char和varchar的使用,char适合存储的大小基本固定在一个范围之内,经常发生变动的数据。而varchar则不一样,varchar适合那种大小不固定,并未经常发生改动的数据。需要注意的是varchar定义的长度最好可以刚好够用,不然会照成资源的浪费,影响整体数据库的性能和存储空间。
4.能用整数标示,最好利用整数标示,因为这样开销最小,效率也是最高的。
5.一个表字段要限制在一定范围之内,不要太长,不然在查询的时候会付出很大的代价,最好分成常用的和非常用的字段。
6.在设计表和设计查询语言的时候就要主要尽量避免大规模的关联查询,因为这样会严重影响数据库的查询效率。
7.在设计数据库的时候要根据具体的业务设计出合理的数据库表和字段。不仅要考虑范式,也要考虑反范式。在不影响数据安全和数据冗余的情况下,可以适当的考虑混合范式的设计。
8.使用缓存表和汇总表能表进行数据库的查询优化。
MySQL数据库系列之数据库设计原则相关推荐
- 设计模式系列,六大设计原则
设计模式和性能优化有没有关系?最近,我看到有人再讲性能优化的时候,讲到了"有些设计模式可以做到一定程度的性能优化". 我读书少,别骗我.我看过无数篇设计模式了,第一次听到有人说,设 ...
- 举例说明层次分析的三大原则_设计模式系列,六大设计原则
设计模式和性能优化有没有关系?最近,我看到有人再讲性能优化的时候,讲到了"有些设计模式可以做到一定程度的性能优化". 我读书少,别骗我.我看过无数篇设计模式了,第一次听到有人说,设 ...
- db2查看表结构_作为后端开发如何设计数据库系列文章(一)设计传统系统表结构(Java开发)...
本篇为第一篇.讲解传统系统的表结构设计(Java开发). 讲讲如何避免数据库设计的一些坑,方便后期的开发与维护. 以前经常能够看到,数据库范式,现在说数据库三大范式的少了. 三大范式我以前也很严格的弄 ...
- 作为后端开发如何设计数据库系列文章(一)设计传统系统表结构
本篇为第一篇.讲解传统系统的表结构设计(Java开发). 讲讲如何避免数据库设计的一些坑,方便后期的开发与维护. 以前经常能够看到,数据库范式,现在说数据库三大范式的少了. 三大范式我以前也很严格的弄 ...
- 后端开发如何设计数据库系列文章(一)设计传统系统表结构(Java开发)
本篇为第一篇.讲解传统系统的表结构设计(Java开发). 讲讲如何避免数据库设计的一些坑,方便后期的开发与维护. 以前经常能够看到,数据库范式,现在说数据库三大范式的少了. 三大范式我以前也很严格的弄 ...
- 后端开发如何设计数据库系列文章(二)设计大数据量表结构
上篇文章讲解了传统数据库的一些设计注意点. 本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果.对于团队,对于后续的维护和扩展都带来更大的便利. 自增id 自增id还是 ...
- 【数据库系列】数据库基本知识点整理
文章目录 一.基本概念 1.数据模型 2.主键与外键 3.事务 4.索引 5.视图 二.SQL语句 1.数据定义 1)CREATE TABLE 2)ALTER TABLE 3)DROP TABLE 2 ...
- 计算机设计原则,CISSP备考系列之计算机设计原则[10-39]
[CISSP是小众,与MCSE,CCNA一类的不同,资料很少.本人在准备CISSP考试.总结一些考点,供大家参考(内容主要是<CISSP认证考试权威指南(第4版)>的读书笔记,感谢作者和译 ...
- 【设计模式系列】OO设计原则之LSP-Liskov替换原则
概要 什么是所谓的替换原则?开发中我们通常会通过继承实现一些子类来达到功能的扩展,比如假设我们有基类B,有个B类型的指针或引用作为某个函数的参数,这时我们创建了子类C继承于B,如果当把指向C类对象的指 ...
最新文章
- Mysql 获取当月和上个月第一天和最后一天的解决方案
- 线性代数:第二章 矩阵及其运算:逆矩阵、分块矩阵
- STL系列:关联容器的操作
- PostgreSQL、Greenplum 日常监控 和 维护任务
- python上下文管理关键字_[宜配屋]听图阁
- Lambda 表达式详解~Stream Pipelines
- 【Vue】实例对象的生命周期(方法详解)
- UE3 Lightmass 工具
- 分享一个.NET(C#)按指定字母个数截断英文字符串的方法–提供枚举选项,可保留完整单词...
- Hibernate学习之createSQLQuery与createQuery的区别及使用
- asp + Access 常见的数据库访问失败问题 Microsoft JET Database Engine 错误 '80004005' 解决办法...
- 大数据的普及催生医疗信息技术市场蓝海
- 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0...
- 常用视频像素格式 YUV422 YUV420
- 信噪比计算方式(小问题解惑)
- Linux中ffmpeg批量压缩音频
- 把window的鼠标指针改成Mac的
- 语聊房玩法解析,如何快速打造一款语音社交产品
- Internal Error occurred while analyzing this expression
- 国产电机驱动芯片TMI8870应用在智能马桶翻盖/翻圈上