MySQL数据库系列之数据库设计原则

MySQL中数据库设计原则:

1.一般情况下,应该尽量使用可以正确存储数据的最小数据类型。数据类型不一样,存储的执行效率也不一样。最好使用适度的整型数据类型,例如int之类的数据,这样在做查询或者字段排序的时候速度是最快的。

2.尽量避免NULL值的时候,因为这样会增加数据库处理的开销。但是也要考虑实际情况,不要一味的为了避免空值而全部设置为not null,具体的设置情况要根据项目的具体业务来。

3.注意char和varchar的使用,char适合存储的大小基本固定在一个范围之内,经常发生变动的数据。而varchar则不一样,varchar适合那种大小不固定,并未经常发生改动的数据。需要注意的是varchar定义的长度最好可以刚好够用,不然会照成资源的浪费,影响整体数据库的性能和存储空间。

4.能用整数标示,最好利用整数标示,因为这样开销最小,效率也是最高的。

5.一个表字段要限制在一定范围之内,不要太长,不然在查询的时候会付出很大的代价,最好分成常用的和非常用的字段。

6.在设计表和设计查询语言的时候就要主要尽量避免大规模的关联查询,因为这样会严重影响数据库的查询效率。

7.在设计数据库的时候要根据具体的业务设计出合理的数据库表和字段。不仅要考虑范式,也要考虑反范式。在不影响数据安全和数据冗余的情况下,可以适当的考虑混合范式的设计。

8.使用缓存表和汇总表能表进行数据库的查询优化。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP技术

MySQL存储引擎总结

前言 在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等一下,...

3746
来自专栏Java Edge

大道缓存1 缓存特征2 缓存介质3 缓存分类和应用场景缓存实战

用户请求从界面(浏览器/App)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。

361
来自专栏Java技术交流群809340374

MySQL有哪些存储引擎,各自的优缺点,应用场景

经常面试都会问到MYSQL有哪些存储引擎,以及各自的优缺点。今天主要分享常见的存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB...

943
来自专栏服务端思维

服务端开发指南与最佳实战 | 数据存储技术 | MySQL(02) 存储引擎的 InnoDB 与 MyISAM 之争

作为 MySQL 数据库的两种主要的存储引擎,InnoDB 与 MyISAM 各有长处。

623
来自专栏Spark学习技巧

HBase学习—高表与宽表的选择

转自:https://yq.aliyun.com/articles/213705?utm_content=m_31236 hbase中的宽表是指很多列较少行,...

2015
来自专栏数据库

MySQL数据库性能优化之四

优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 ...

1766
来自专栏Java帮帮-微信公众号-技术文章全总结

Oracle应用开发实战一

Oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式 数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/S...

2766
来自专栏人工智能LeadAI

ElasticSearch优化系列三:索引过程

大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用...

3559
来自专栏高性能服务器开发

经典面试题(二)之一致性哈希算法

当服务器的数据量和访问量很大的时候,我们可能需要寻找一种解决方案去解决诸如分布式、缓存优化的问题,这也是面试高级或资深服务器开发经常会遇到的问题。 我们先以一个...

3899
来自专栏Django Scrapy

关系型数据库和非关系型数据库

一 三范式 1,所有列必须为原子化列 2,设计时需要主键列 3,所有非主键列不能依靠传递与主键列发生关系(所有列与主键列发生的都是直接关系) 生活中的...

2965

扫码关注云+社区