首页
学习
活动
专区
圈层
工具
发布

MySQL 数据库设计经验总结

此文仅在数据库设计层面进行探讨,数据库的运维与底层调优不在讨论范围之内。 更丰富的知识可以在 MySQL 官网文档 查阅。...MySQL 官方文档 https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/index.html 基础知识 存储引擎 通常来说,我们做业务开发,指定存储引擎为...数据库设计 总则 命名以 "_" 分割 数据库层面还是推荐使用 "" 作为分割,这里多说几点:1、约定俗成。长久以来不仅 MySQL ,其他数据库也推荐使用 "",这是一种 SQL 规范。...,减少关联查询 合理使用索引 合理设计所有字段及表关联 尽量避免在数据库层面实现逻辑 尽量避免使用触发器,视图,储存过程,将业务逻辑与统计逻辑分离 不要在业务库中大量统计计算 尽量避免使用各种数据库函数...甚至可以考虑采用 MongoDB 之类的数据库才存储大量的文本表。 索引设计 尽量使用单列索引,避免使用联合索引,不要建 3 列以上的联合索引。

1.7K30

MySQL表设计经验

表设计是每一个后端程序员都无法避开的一块转,而且这块砖一不小心就很容易烫手,本篇笔记就是喂了帮助大家在设计表是能够轻松拿捏1.命名规范数据库表名、字段名、索引名等都需要命名规范。...3.主键设计要合理主键的设计在数据库中非常重要,它用于唯一标识表中的每一行数据,并且在数据操作和查询中起到关键作用。...4.选择合适的字段长度首选问大家一个问题,数据库字段长度表示字符长度还是字节长度?在mysql中,varchar和char类型表示字符长度,而其他类型表示的长度都表示字节长度。...对于大型数据库来说,这可能会导致磁盘空间的浪费。数据库设计复杂性:当表的字段数过多时,数据库的设计和维护变得更加复杂。这可能涉及到索引和关联表的设计,以确保数据的完整性和一致性。...同时,需要注意数据库设计的基本原则和最佳实践,例如避免数据冗余、遵循规范化原则和正常化理论等。13.字段注释设计表时每个字段的含义要注释清楚,包括枚举类型。

60210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql数据库:最全MySQL数据库设计建库、建表规范及经验(踩过坑才能积累经验!)

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求。...数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体。 整理出来的以下内容,是采众家之精华,加上个人理解的汇总,若有错误之处,望大家指正。...这个过程就不错:数据库规划→需求分析→数据库设计→应用程序设计→实现→测试→运行于维护 2.1数据库规划 定义数据库应用系统的主要目标,定义系统特定任务,包括工作量的估计、使用资源、和需求经费,定义系统的范围以及边界...(对于Student进行操作函数) 第二类命名:FN_[具体函数解释] 例如:FN_Spit(对字段进行拆分函数) 参考博客: 数据库设计规范 MySQL 规范 (数据库表设计规范) mysql的建表规范与注意事项...MySQL 数据库规范–设计篇 MySQL 数据库规范–开发篇 建表规范 很多是已经成文的内容,需要自己去理解,能看完这篇博客,相信你对数据库的设计,一定会有长进!

    3.4K30

    数据库设计经验谈

    如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲。...所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授一些设计数据库的技巧和经验。...第 1 部分 -设计数据库之前 考察现有环境 在设计一个新数据库时,你不但应该仔细研究业务需求而且还要考察现有的系统。...这样做可以达到两个目的:首先,你可以清楚地了解应用设计在哪个地方应该更具灵活性以及如何避免性能瓶颈;其次,你知道发生事先没有确定的需求变更时用户将和你一样感到吃惊。 一定要记住过去的经验教训!...测试需要在把新数据库投入实际服务之前完成。 检查设计 在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。

    1.4K40

    数据库编程 MySQL 技巧与经验

    要想解决这个问题,可以在当前的表设置引擎为InnoDB、PBXT或SolidDB,但这只是修改了这一个数据库,下次建新的数据库默认引擎还是MyISAM,我们可以在MySQL的安装目录下的配置文件my.ini...以更改 Mysql 默认引擎为 InnoDB为例步骤如下: 查看Mysql存储引擎情况: mysql>show engines,结果是: InnoDB | YES,说明此Mysql数据库服务器支持InnoDB...引擎; 设置InnoDB为默认引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB; 重启Mysql服务器; 登录Mysql数据库,mysql...(255) mysql> BEGIN mysql> IF ISNULL(S) THEN mysql> RETURN ''; mysql> ELSEIF N<15 THEN mysql>...(255) mysql> BEGIN mysql> IF ISNULL(S) THEN mysql> RETURN ''; mysql> ELSEIF N<15 THEN mysql>

    1.1K30

    21个MySQL表设计的经验准则

    作为后端开发,我们经常需要设计数据库表。整理了21个设计MySQL表的经验准则,分享给大家,大家看完一定会有帮助的。...数据库库、表、开发程序等都需要统一字符集,通常中英文环境用utf8。 MySQL支持的字符集有utf8、utf8mb4、GBK、latin1等。...如果直接把表字段设计成text类型的话,就会浪费存储空间,查询效率也不好。 在MySQl中,这种方式保存的设计方案,其实是不太合理的。...分库:就是一个数据库分成多个数据库,部署到不同机器。 分表:就是一个数据库表分成多个表。 我们在设计表的时候,其实可以提前估算一下,是否需要做分库分表。...21. sqL 编写的一些优化经验 最后的话,跟大家聊来一些写SQL的经验吧: 查询SQL尽量不要使用select *,而是select具体字段 如果知道查询结果只有一条或者只要最大/最小一条记录,建议用

    2.5K21

    MySQL数据库设计

    mysql:    dbs  数据库系统    bdms  数据库管理系统    bda   数据库管理员    db    数据库    dba通过dbms来操作db!...软件项目开发周期中数据库设计 01.需求分析阶段:分析客户的业务和数据处理需求 02.概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整 03.详细设计阶段:应用三大范式审核数据库结构 04...数据库的备份 cmd进入命令行 mysqldump -u用户名 -p 数据库名称 >指定的文件 数据库的恢复 前提是必须要有对应的数据库  mysql -u用户名 -p <指定的文件 1. mysql...为DOS命令 2.在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在恢复数据库过程将会出错 关系型数据库和非关系型数据库  登录mysql   mysql  -h主机地址   -u用户名...第三范式:在满足第二范式基础上,保证表中除主键列外的其他列,都直接依赖于主键列,则符合第三范式 设计没有好坏,没有对错之分,所谓仁者见仁智者见智 1.MySQL的优势  1.运行速度快,  2.使用成本低

    3.6K110

    MySQL(数据库设计)

    目录: 三大范式 ER图 PowerDesigner工具 数据库设计三大范式 范式是符合某种设计要求的总结,关系型数据库中有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式...第一范式 每个字段不可再分割,数据库表中每一列都是原子项的数据。 如:下面表就不符合第一范式 为什么? 因为address列不具有原子性,还可以分割。...班主任编号都直接依赖于学号,班主任姓名和班主任年龄没有直接依赖于学号,而它依赖的是班主任编号(非主键字段); 对上表进行修改,使其符合第二范式,如下面两个表: 1、学生表 2、班主任表 注意: 在实际开发过程中,所有表的设计都必须满足第一范式要求...因为性能的优先级要高于规范的优先级(当性能和规范冲突时以性能为主),特别是电商项目中,为了满足性能要求去违背设计规范。...角色表: 权限(菜单)表: 角色权限表: PowerDesigner 这是一个建立数据库模型,生成数据库的工具。

    2.7K30

    MySQL系列 | MySQL数据库设计规范

    规范背景与目的 MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。...本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2....设计规范 2.1 数据库设计 以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。...因为Innodb表支持事务、行锁、宕机恢复、MVCC等关系型数据库重要特性,为业界使用最多的MySQL存储引擎。而这是其他大多数存储引擎不具备的,因此首推InnoDB。...【建议】在应用程序设计阶段,RD必须考虑并规避数据库中主从延迟对于业务的影响。尽量避免从库短时延迟(20秒以内)对业务造成影响,建议强制一致性的读开启事务走主库,或更新后过一段时间再去读从库。

    4.1K30

    MySQL数据库设计规范

    规范背景与目的 MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。...本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2....设计规范 2.1 数据库设计 以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。...因为Innodb表支持事务、行锁、宕机恢复、MVCC等关系型数据库重要特性,为业界使用最多的MySQL存储引擎。而这是其他大多数存储引擎不具备的,因此首推InnoDB。...【建议】在应用程序设计阶段,RD必须考虑并规避数据库中主从延迟对于业务的影响。尽量避免从库短时延迟(20秒以内)对业务造成影响,建议强制一致性的读开启事务走主库,或更新后过一段时间再去读从库。

    3K40

    MySQL数据库设计规范

    1、MYSQL配置参数lower_case_table_names,不可动态更改,LINUX系统默认为0,即库表名以实际情况存储,大小写敏感。如果是 1,以小写存储,大小写不敏感。...如果实现一个常用的功能需要一个关联多个表的查询,则需要重新考虑设计。 由程序保证冗余数据的维护。 规范十,对于字典类型的表,因数据量少,修改少,影响面大,应依赖数据库约束来确保数据质量。...规范十一,对于字段设计:越简单越好,越小越好。...定义大长度会消耗更多的空间(需要用额外的字节存储长度) 在很多时候,mysql 会以列的长度定义来分配使用内存,过大的字段长度定义会消耗更多的内存。甚至还有可能原来可以在内存执行的排序变为磁盘排序。...如果没有指定主键,mysql 会选择一个非空的唯一键作为主键。如果都没有,mysql 会自动分配 6-bytes长度的全局的 rowid 隐藏列作为主键。

    3.2K20

    Mysql数据库课程设计

    今天给大家分享一下使用javafx编写的前端的 Mysql数据库课程设计 题库与试卷生成系统!废话不多说了,直接上截图,希望对大家有所帮助!(建议拿来参考不建议直接CV哦!)...试卷自动生成:学生在考试时的会随机从题库中抽取四道题,学生在作答完毕后点击提交试卷会自动记录学生的成绩并且自动更新数据库内容。 管理员:管理员可以管理学生,教师以及题库的信息。...根据前面的设计,以及相应的数据项,数据结构之间的关系,通过分类总结,可以将图书管理系统数据库实体划分为图书信息实体集、学生信息实体集、馆藏地实体集、借书卡信息实体集、缺书信息实体集,各实体集里还包含不同的实体...以上也就是基本的设计规则了,只要按照相应的规则转换,就能够得到所要的规范程度,得到一个良好的范式,根据得到的ER图,进行关系模式的转换。...具体的关系模型如下: 学生表设计: 数据项名 数据类型 长度 别名 取值范围 主外键 Id int 10 编号 主键 Name CHAR 30 学生名 Gender Char 30 性别 男,女

    2.6K11

    数据库-库表设计 【分享一些库表设计经验】

    本文的核心内容:记录积累一些库表设计方案与技巧 数据库实体与实体间的对应关系 1)数据库表的菜单【分类】设计:如省市关联、图书的一、二级分类。...2)数据库表设计之树形结构的表 3)表的简化方案(特定情况,例如,用户触发过的场景记录表) 4)数据库表设计之购物车,利用Session暂时存储购物车信息。...外语[英语、日语、韩语、俄语、德语] 计算机[计算机理论、计算机考试、数据库、人工智能、程序设计] BookInf 图书详情 :...child.countnumber from t_booktype child ,t_booktype parent where child.parentid=parent.typeid ---- 二:MySQL...id parent_id deep //当前树的深度 path //根路径 is_leaf //是否叶子节点 ---- 三:MySQL 表的简化(特定情况,例如:用户触发过的场景记录表

    2.5K30

    如何恢复MySQL数据库:我的经验之谈

    在日常工作中,我们可能会遇到各种原因导致需要重新安装MySQL。无论是由于系统故障、升级或其他原因,我们都希望在重装MySQL后能够顺利地恢复原有的数据库。...在这篇文章中,我将分享我的一些经验,帮助你在遇到类似情况时能够轻松地恢复MySQL数据库。1. 重新安装MySQL 首先,你需要下载并安装适合你操作系统的MySQL版本。...重启MySQL并完成数据加载 最后,重启MySQL服务。如果以上步骤都正确无误,你的数据库应该成功加载,所有的数据表和数据都应该像原来一样可以访问。...结论 数据库的恢复可能初看起来是一个复杂的过程,但只要你遵循上面的步骤并确保所有的配置都设置正确,恢复MySQL数据库应该是一个相对简单的任务。...希望我的经验能够帮助你在面对数据库恢复的时候更加自信和从容。

    1.1K10

    Mysql数据库课程设计

    今天给大家分享一下使用javafx编写的前端的 Mysql数据库课程设计 题库与试卷生成系统!废话不多说了,直接上截图,希望对大家有所帮助!(建议拿来参考不建议直接CV哦!)...试卷自动生成:学生在考试时的会随机从题库中抽取四道题,学生在作答完毕后点击提交试卷会自动记录学生的成绩并且自动更新数据库内容。 管理员:管理员可以管理学生,教师以及题库的信息。...根据前面的设计,以及相应的数据项,数据结构之间的关系,通过分类总结,可以将图书管理系统数据库实体划分为图书信息实体集、学生信息实体集、馆藏地实体集、借书卡信息实体集、缺书信息实体集,各实体集里还包含不同的实体...以上也就是基本的设计规则了,只要按照相应的规则转换,就能够得到所要的规范程度,得到一个良好的范式,根据得到的ER图,进行关系模式的转换。...具体的关系模型如下: 学生表设计: 数据项名 数据类型 长度 别名 取值范围 主外键 Id int 10 编号 主键 Name CHAR 30 学生名 Gender Char 30 性别 男,女

    2.2K11
    领券