MySql 数据库基本设计规范

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

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

2、数据库和表的字符集统一使用utf8mb4-general-ci

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

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

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

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

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

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

5、谨慎使用MySQL分区表

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

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

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

7、禁止在表中建立预留字段

预留字段的命名很难做到见名识义 预留字段无法确认存储的数据类型,所以无法选择合适的类型 对预留字段类型的修改,会对表进行锁定

8、禁止在数据库中存储图片,文件等大的二进制数据

通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机IO操作,文件很大时,IO操作很耗时 通常存储于文件服务器,数据库只存储文件地址信息

9、禁止在线上做数据库压力测试

10、禁止从开发环境,测试环境直接连接生成环境数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASA防火墙16 SSL/×××

1、ASA的基本配置:Archasa(config)# int e0/0 Archasa(config-if)# ip add 192.168.0.1 255.255.255.0 Archasa(config-if)# nameif outside Archasa(config)# int e0/1 Archasa(config-if)# ip add 172.20.59.10 255.255.255.0 Archasa(config-if)# nameif i…

利用11行Python代码,盗取了室友的U盘,内容十分刺激!

作者:Python新世界 來源:简书https://www.jianshu.com/p/3d7b2d9fe679序言那个猥琐的家伙整天把个U盘藏着当宝,都睡觉了就拿出来插到电脑上。我决定想个办法看他U盘里都藏了什么,直接去抢U盘是不可能的,骗也是…

如何查询服务器是否安装系统时间,如何查看系统当前的NTP配置?

我试过了:w32tm /query /status我有:The command /query is unknown.在另一台机器上,我得到:The following error occurred: The service has not been started. (0x80070426)然后我尝试了:reg QUERY [\\machine\]HKLM…

鸡肋还是革新——Blazor进WinForm

winform是一老技术,感觉都有点掉牙了(我近20年前就是从winform开始接触.net的);blazor,是微软技术圈里的新宠,正在被悉心照顾。当这一老一少的技术碰撞后,会有什么火花?.net v6.0.0-…

一个女程序员征男友的需求说明书

前 言常听人说程序员的生活枯燥为人刻板,其实这是你不懂程序员。代码之外,生活之中,这些高智商人的幽默风趣,才华的展现往往能在「论坛」这个神奇的领域一窥究竟。(悲哀,因为给他们展现Coder之外才华的地方…

Linux锁定和解锁用户

1、禁止个别用户登录。比如禁止lynn用户登录。 passwd -l test 这就话的意思是锁定test用户,这样该用户就不能登录了。 passwd -u test 对锁定的用户lynn进行解锁,用户可登录了。 2、我们通过修改/etc/passwd文件中用户登录的shell vi /etc/passwd test:…

查看服务器物理内存大小,如何看服务器的物理内存大小

如何看服务器的物理内存大小 内容精选换一换JVM在执行Java程序时会把它所管理的内存划分为若干个不同的运行时数据区域,主要包括:程序计数器、方法区、虚拟机栈、本地方法栈和堆:程序计数器可以看作时当前线程所执行的字节码的行号指示器。方…

通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布...

之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能——订阅发布目录:一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简…

值得收藏的Python小技巧:这17个骚操作你都OK吗?

导读:Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 带我们回顾了 17 个非常有用的 Python 技巧,例如查找、分割和合并列表等,这 17 个技巧都非常简单,但…

常用药

上火 众生丸白云山-板蓝根同仁堂-牛黄解毒丸星群-夏桑菊穿心莲片银黄颗粒发炎 罗红霉素阿莫西林头孢拉定止咳 咽立爽口含滴丸感冒 999感冒灵维C银翘片白加黑桑菊感冒片仁和可立克羚羊感冒片呕吐腹泻 (加味)藿香正气丸保济口服液转载于:https://www.cnblo…

等待十年,史上第一个 64 位版 Visual Studio 将于今夏公开首个预览版!

昨日,微软在其开发者博客宣布了一则重磅消息——Visual Studio 2022 首个预览版将于今年夏季发布 ,并且终于成为万众期待的 64 位版!要知道,早在 2011 年就有用户在 Visual Studio 的反馈建议网站提出,希望微软开发 64…

普通人和程序员看到的树

IT程序猿 微博网友评论:小苏打_sct:我家门前有两棵树,一棵是二叉树,另一棵也是二叉树( _ゝ`)Christible_L:这不是多叉树吗 北辰找不着北:程序员都是从根看起的~ 洱海不语:先先总体到…

51CTO交流摘录(1):SOC的定义、适用性和组成

51CTO的安全管理平台交流已经结束了,有不少网友还是提出了一些比较好的问题,也帮我再次梳理一下对于安全管理平台的理解。这里我也跟大家分享一些交流的内容。 问题1:请问SOC是什么?什么样的安全运维管理平台更适合自己的企业&…

华为高性能服务器刀箱,云平台服务器刀箱

云平台服务器刀箱 内容精选换一换将外部镜像文件注册成云平台的私有镜像后,您可以使用该镜像创建新的云服务器,或对已有云服务器的系统进行重装和更换。本节介绍使用镜像创建云服务器的操作。您可以按照通过镜像创建云服务器中的操作指导创建弹性云服务器…

Magicodes.IE.AspNetCore之一行代码多格式导出

主要步骤1.安装包Install-Package Magicodes.IE.AspNetCore2.开始配置在Startup.cs的Configure()方法中,在UseRouting()中间件之后,注册如下中间件public void Configure(IApplicationBuilder app) {app.UseRouting();app.UseMagiCodesIE();app.UseEndpoints(endpoints >{en…

想不到吧,这些都能用R!

R作为一种统计分析软件,广泛应用于生物、医学、电商、新闻等数据相关行业,是目前主流数据应用软件之一。那么,R到底有哪些特别之处呢?实际上,R是统计领域广泛使用的S语言的一个分支,两者在程序语法上几乎一样&#xf…

ssd windows未能启动服务器,ssd安装win10无法启动你安装方法对吗?来看一下

固态硬盘虽然价格偏高,但是读写速度快,很多人只追求速度,纷纷买了全新固态硬盘安装系统,现在最新的系统是win10,如果在uefi电脑上用固态硬盘安装win10,那么速度将有质的提升,那么全新固态硬盘怎…

bigpipe merge对F5做批量配置

当需要针对F5做大批量配置时,如果直接使用bigpipe shell批量配置,很容易导致发生HA切换。针对此情况,F5提供一个bigpipe merge的命令,能快速完成大批量配置的部署,同时不会发生HA切换。 bigpipe merge使用方法&#xf…

NET问答: 如何避免在 EmptyEnumerable 上执行 Max() 抛出的异常 ?

咨询区 Naor:我有下面的一个查询:int maxShoeSize Workers.Where(x > x.CompanyId 8).Max(x > x.ShoeSize);如果 Workers.Where(x > x.CompanyId 8) 没有查到任何 Workers 的话,上面的代码将会抛出异常。现在的想法是:查不到的话…

一名IT经理是如何把项目带崩的。。。

我是一名项目经理,在过去的四个月里,我把一个项目带崩了(上线后频出问题,用户无法使用)。在最近的几天,我每天都在反思自己,我都在问自己以下几个问题:1.我做错了什么?2.…