博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
互联网mysql表设计
阅读量:6713 次
发布时间:2019-06-25

本文共 895 字,大约阅读时间需要 2 分钟。

hot3.png

互联网数据存储层,如果使用到关系型的数据库,很多公司都会采用mysql。同理传统软件的mysql使用率也是很高,怎么设计很好的数据库表结构,每个人都有自己的准则和标准。也许根据对应的业务需求不同也会有所不同。这里对一些经验来总结。

表字段的命名,要名如其意,并且尽量的简洁,因为这部分内容同样是需要存储的。

单表如果字段特别多,此时要考虑拆分表,根据数据类型或者业务类型来拆分。比如每个系统都有的用户表,用户的核心数据放在一个表中,用户的一些初始化信息,只有在第一次注册时填的内容放在一个表中,用户可能频繁修改的一些字段放在一个表中。不仅达到数据的拆分,而且对数据库存储的本身的空间进行了优化,并且根据数据的不同可以建立对应的索引,增加查询效率。

表字段类型的选择,表中会有很多不同类型的字段内容,当然我们设计表的时候肯定会设计到字典表,对于一些定性并且是可选的内容是我们都将使用字典来存储,对于mysql而言你就可以使用占用空间很小的字段类型来设置该字段TINYINT,有符号的范围是-128到127,无符号的范围是0到255。不仅选择了合适的字段类型减轻了数据存储空间,并且增加了可扩展性。这点可以参考mysql的官方文档来根据需求设定字段类型。对于时间类型的选择,首先你要考虑你的服务器使用的时间精确度,不同的数据类型需要的空间也是不一样的。

表字段冗余的问题,这个是要和具体的业务关联起来的,在设计数据库的时候虽然要求我们尽量的减少数据冗余,但是在有些业务场景下我们需要频繁的关联另外一个表查询对应表字段的一个内容,数据量小几百万都是问题不大,如果数据量是递增的,还有如果遇到分库分表,每次错跨表查询或者跨库查询都是需要消耗时间和空间的,此时合适的冗余会增加业务系统的性能,带来的问题一样是很大的,是否需要实时的更新,原数据修改了怎么办?这个不是绝对的,需要考虑具体的业务需求。

数据量大的关联查询,此时我们一定要杜绝关联查询,可以在代码级别进行数据的拼接,实现关联查询的效果。

转载于:https://my.oschina.net/wangshuaixin/blog/810185

你可能感兴趣的文章
学习和使用 PHP 应该注意的10件事
查看>>
《当用户体验设计遇上敏捷》一3.3 设计的适合之处
查看>>
《众妙之门——网页设计专业之道》——1.4 如何与众不同
查看>>
多核编程入门
查看>>
《TensorFlow技术解析与实战》——1.6 机器学习的相关赛事
查看>>
大数据小说 | 如何用一小时看透一个初识的姑娘
查看>>
《Python面向对象编程指南》——1.10 一些其他的类定义
查看>>
《Android NFC开发实战详解》——6.3节Android NFC P2P开发实例
查看>>
Oracle ASM 翻译系列第八弹:ASM Internal ASM file extent map
查看>>
《Python密码学编程》——2.5 行号和空格
查看>>
JS页面后退并刷新
查看>>
《Ember.js实战》——2.5 Ember.js对象模型
查看>>
《响应式Web图形设计》一第13章 响应Web设计中的图像
查看>>
shiro session 监听
查看>>
定时任务框架Quartz的新玩法
查看>>
段前缀的使用(0504)
查看>>
.NET Framework 源码
查看>>
开源大数据周刊-第6期
查看>>
centos上一键安装jdk、tomcat脚本
查看>>
排序算法 时间、空间复杂度
查看>>