数据库设计需要遵守的设计规范

数据库设计需要遵守的设计规范,第1张

数据库的开发对于后台编程程序员来说是必备能力之一了,而今天我们就一起来了解一下,关于数据库开发的设计规范都有哪些类型,北京北大青鸟希望通过对本文的阅读,大家对于数据库开发有更多的了解。

一、数据库命令规范

所有数据库对象名称必须使用小写字母并用下划线分割

所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)

数据库对象的命名要能做到见名识意,并且后不要超过32个字符

临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀

所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)

二、数据库基本设计规范

1、所有表必须使用Innodb存储引擎

没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql55之前默认使用Myisam,56以后默认的为Innodb)Innodb支持事务,支持行级锁,更好的恢复性,高并发下性能更好

2、数据库和表的字符集统一使用UTF8

兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效

3、所有表和字段都需要添加注释

使用comment从句添加表和列的备注从一开始就进行数据字典的维护

4、尽量控制单表数据量的大小,建议控制在500万以内

500万并不是MySQL数据库的限制,过大会造成修改表结构,备份,恢复都会有很大的问题

可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手段来控制数据量大小

5、谨慎使用MySQL分区表

分区表在物理上表现为多个文件,在逻辑上表现为一个表谨慎选择分区键,跨分区查询效率可能更低建议采用物理分表的方式管理大数据

6、尽量做到冷热数据分离,减小表的宽度

MySQL限制每个表多存储4096列,并且每一行数据的大小不能超过65535字节减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大,也会消耗更多的IO)更有效的利用缓存,避免读入无用的冷数据经常一起使用的列放到一个表中(避免更多的关联 *** 作)

就是总数据库的子分库

传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。

数据库设计的一个原则就是,一个库里的表越少越好,一张表里的字段越少越好。当然也要看你的UI是怎么设计的,如果一个页面只查询一张表,不涉及到多表连接,那么无论放在哪个库里都可以,那就建议分库。否则就要跨表跨库查询,那真是噩梦!

假如把所有的数据库都存在一张表中我们查询起来将十分困难,比如我们有一张存储一亿条数据的数据表。我们要在其中查询一条,查询的时间可想,但是如果我们将信息存储在不同表中并将不同表中的信息联合起来我们就可以实现快速的查询。进而减轻服务器的负担减轻数据库的负担。

看你的需求,如果不同城市需要访问的内容不同,(比如房地产,我访问天津房产,那么可以是天津一个库,当然不仅仅是房子可能还有一些什么地图啊,房型啊,交通啊等等很多内容,访问河北石家庄房u产,那么就访问石家庄的数据库,这样能减少数据库查询量,分担数据库负载。)那么就分库。试想一下,如果全国的房产内容,包括所有的相关内容 ,在一个库,而每次调取,都是相关同时调取,一次有每次有10个人查一个省份,那么全国就是300多人,这还仅仅是10个,如果100个呢?1000个呢?只调房产内容容易,可以相关内容同时调取,我想很多机器扛不住吧。(当然不排除集群,和多主机以及多地主机毕竟这也是一个解决问题的办法,如果没那么多钱还是分库好点)

当然,如果仅仅是部分内容处理分析,或者基本不存在大量查询内容的情况下,还是部分好些,因为没必要分库。如果我要用全国的数据进行分析,难道每次要读30几个数据库么?那样更慢。

至于你说的公共站点这个可以这么解释,一般来说现在为了提高访问速度,都是多主机异地,比如某某网络公司,可能在全国各地都有主机,你访问的时候,访问的是离你“最近”的主机。虽然他们的域名相同,或者内容想相同,但是他们的ip不同,后台通过技术去同步,可能是数据库异地同步,可能是主机异地同步。比如过去有些网络游戏,会有华南区,华北区,大概就是这样的。都是同一个游戏,但是主机不同。只不过他们没做同步,所以转区时只是简单的清零。

具体的还是看你的需求和成本,还有访问量等等这些因素才能决定到底怎么做比较好。

因为数据库或者数据表里的数据会越来越多,查询速度就会越来越慢,分库分表可以解决这个问题,每个表里只存限制条数的数据,超出了就创建新表。但其实只要数据库结构合理,加上适当优化,上亿的数据记录都没问题的。所以不一定非得分库分表,要是结构优化得不好,分库分表反而会造成更多的问题。

数据库划分

小型数据库:aess,foxbase

中型数据库:mysql,sqlserver,Informix

大型数据库:sysbase,oracle,db2

如何考虑用什么类型的数据库(小型数据库)

1项目的规模

a负载量多大,用户多大

b成本

c安全性

负载量小100人内

比如留言板,信息系统选用小型数据库

成本在千元以内,对安全性要求不高。

中型数据库

比如在负载,日访问量5000—15000

成本在万元内

比如电子商务网站

大型数据库

负载可以处理少量数据库

Sybase

安全性能高,价格昂贵

以上就是关于数据库设计需要遵守的设计规范全部的内容,包括:数据库设计需要遵守的设计规范、数据分库是什么意思啊、数据库分库,分表有哪些要注意的以及解决办法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10186176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存