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

MySQL中数据库设计原则:

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

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

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

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

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

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

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信终端开发团队的专栏

微信全文搜索优化之路

本文以移动平台广泛采用的SQLite FTS Extension为例, 重点讲述微信在FTS上的一些性能优化经验。

2.9K2
来自专栏菩提树下的杨过

中小型商城系统中的分类/产品属性/扩展属性的数据库设计

声明:之所以定位在"中小型"商城系统,而非“大型”(指淘宝、拍拍这类巨无霸),理由很简单----我一直都呆在(创业型的)小公司,没见过这些大家伙是怎么设计的:)...

2838
来自专栏数据和云

掀开SQL的神秘面纱,将优化进行到底

编辑手记:有这样一条奇怪的SQL,返回结果不足10行,逻辑读达到1.2w,存在索引却走多次全表扫描,如何揭开它神秘的面纱拯救系统性能,答案在这里,你不可错过! ...

35612
来自专栏达观数据

技术干货 | 搜索引擎之倒排索引解读

互联网时代,信息纷繁海量,人们通过搜索引擎直达“心中所想”已是常态。那么搜索引擎到底是如何高效查找目标内容呢?本文主要介绍搜索引擎里一个比较重要的结构——倒排索...

4054
来自专栏牛客网

江浙沪的java春招实习综合面经

1570
来自专栏芋道源码1024

从一次 Snowflake 异常说起

1. 异常概述 2018年1月26日下午,业务方信贷小组的同学反馈服务执行数据库插入操作出现异常,异常信息显示数据库主键出现重复: ? 在仔细分析了用户的重复主...

3.7K6
来自专栏牛客网

网易云音乐Java面经(共三面)

【每日一语】很多人都无从得知自己的天赋,因为找不到相信他们的老师。于是他们深信自己很笨。——《心灵捕手》

4261
来自专栏牛客网

百度,美团,鼎信,涂鸦面经

8.12 百度运维部共三面(offer) 1.自我介绍 2.聊项目 3.epoll和select的区别,epoll两种触发方式,踩过那些坑 4.讲讲re...

38613
来自专栏上善若水

001-[转]11 个重要的数据库设计规则

简介 Rule 1:- What is the Nature of the application(OLTP or OLAP)? Rule 2:- Brea...

1324
来自专栏Cloud Native - 产品级敏捷

敏捷开发下, 由 User Story 中设计: 保证数据一致性的数据库表结构

过往的数据库设计思维∵强调整体,主要是期望借由所谓的整体,使的数据库设计可保证数据的 Integrity。 但这样的思维,在面向对象的世界里,往往因类设计时,类...

2175

扫码关注云+社区