数据库优化之中间表

article/2025/8/23 7:15:18

过一段时间回看之前项目的数据库设计都忍不住吐槽,这谁写的(我自己),当然也说明自己进步了哈。

本篇主要从性能和编码方便的角度来看中间表的使用。

昨天看原来写的数据库就发现了问题!背单词app,单词书和单词要联系起来,两种方案:

  • 单词书表里面包含单词,重复的单词书记录跟着不同单词,如图。

在这里插入图片描述

这样的问题是单词书表数据量太大太冗余,我们在查单词书的时候很不方便效率也很低。而且单词表存在的意义好像不大,肯定是不满足第三范式了!

  • 加入中间表book_word,单词书表和单词表不变,上图展示的表作为中间表!!!值得推荐,我们在查该学这本书的第几个单词的时候很方便,不用表连接,单表查询!不好的地方是数据冗余,不满足第三范式!是一种空间换时间的方式。而且修改单词书或单词信息的时候中间表也要记得改。
  • 对中间表进行修改!单词书信息和单词信息都只保留id!好处是满足第三范式,不足之处是查询起来不方便还需要连表查询,不过修改单词书和单词信息的时候不需要修改中间表。
  • 另一种对中间表修改折中的办法是单词书信息只保留id,单词信息是完整单词信息,同样是不满足第三范式,但是针对场景我们需要的是根据书籍id查单词信息,这样更符合场景。

总结

中间表使用必要很大,但是如果去满足第三范式,编码不方便需要连表查询,针对场景数据冗余一点个人认为是有必要的,主要是一个表只有三个id字段感觉很怪,太浪费了。

mysql 中间表 性能_mysql性能优化


http://chatgpt.dhexx.cn/article/q3miMNkS.shtml

相关文章

浙江工业大学2023考研计算机学硕经验贴

文章目录 前言经验分享作息数学英语政治408 总体建议吐槽资源分享后面就是复试了选导师最后 前言 再开始前,先说一下自身情况,本人本科是浙江万里学院毕业的,同时也是一名二战生,一战的时候报的也是浙工大计算机学硕,…

杭电计算机研究生复试题

一、数据结构 线性存储和链式存储优缺点比较 1.1. 线性表的存储结构,优缺点 顺序存储结构可以直接存取数据元素,方便灵活、效率高,但插入、删除操作时将会引起元素的大量移动,因而降低效率。 链接存储结构中内存采用动态分配&am…

java 函数概述

函数 函数的定义函数调用函数分类局部变量方法重载函数递归 函数的定义 Java中函数也叫方法,是定义在类中的一段独立的代码块,用来实现某个功能;作用是提高代码的复用性和可读性。 语法格式: 修饰符 返回值类型 函数名(形式参数…

java中函数的应用。

我们把函数的特点和定义说完之后,我们来说说java中函数的基本应用。我们在编写程序其实就是在不断的实现功能,而java中最小的功能单元就是函数,所以我们日后再定义功能,都定义在一个独立的函数中去,而不要再乱七八糟塞…

Java函数总结

一.什么是函数: 为了解决某一特定问题,具有名称的的代码集合。JAVA函数也可以叫做方法,要调用方法可以通过对象去调用方法(如果方法是非静态的),也可以直接用类名去调用方法(如果方法是静态的&a…

JAVA方法(函数)的概念

JAVA中函数的概念,什么是函数? 答:函数英文称function,单一或相关联功能用来实现指定 要求功能的代码块,就是函数,函数在项目组可以直接进行调用且实现独立的功能,应对不同的实现需求的各种实现方法&#x…

Java方法(函数)

文章目录 Java方法(函数)一、方法介绍二、方法的定义和调用格式1. 快速入门2. Debug查看方法的执行流程3. 方法调用内存图解4. 带参数方法的定义和调用1)定义和调用格式2)形参和实参 5. 带返回值方法的定义和调用6. 方法通用定义格式 三、方法常见问题四…

java中的函数(概述)

java中的函数是比较重要的一个知识点。那么函数到底是什么呢,我们可以通过几点来进行学习,第一个是定义,第二个是特点,第三个是应用,第四个是重载。其中最重要的当然是函数的应用。定义和特点是为了入门所应用的&#…

JAVA函数(方法)

函数的概念: 函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。 函数的主要作用是为了提高代码的复用性。 函数都是在栈内存中运行;运行的函数处在栈顶。 函数格式:修饰符 返回…

java函数

函数(function): 函数是什么? 函数就是具有名称的特定功能代码的集合。 为什么使用函数: 提高代码的复用度 Java中如何定义函数 访问修饰符 [static] 返回值的类型 函数名称([形式参数列表]) { // 函数体 由一行或者…

函数总结:

–函数是什么: 函数是封装了具备特定功能的一段代码块,具备特定功能的代码集合。 –为什么使用函数: 解决重复性代码问题,提高代码的复用度。–函数基本格式: 访问修饰符 [static] 返回值的类型 函数名称([形式参…

java 基础——函数(方法)

函数基本定义、语法 首先我们先要了解什么是函数? 函数的定义:在类中,有特定功能的一段独立代码块 说人话:简单来说就是,在一个类(一个 .java 文件)里面,一段有自己存在的意义&am…

云上见!操作系统开源社区重磅发布!

凌云时刻 极鲜速递 导读:2020 云栖大会「系统软件开源及生态专场」聚焦云时代系统软件技术的发展及开源生态面临的机遇和挑战,并将进行操作系统开源社区的重磅发布。 作者 | 阿里云操作系统来源 | 云巅论剑 2020 云栖大会将在 9 月 17 日 — 9 月 18 日…

万字干货:阿里巴巴是怎么做大数据算法应用测试的? | 凌云时刻

凌云时刻 洞见 导读:随着最近几年数据计算力与机器智能算法的兴起,大数据应用在各个行业也不断涌现。测试技术作为工程技术的一部分,也在同步演进。在 DT 时代,如何测试和保障一个基于大数据的应用的软件质量,成为测试…

在中国在行其道的智慧城市,为何折戟多伦多? | 凌云时刻

凌云时刻 洞见 导读:谷歌的母公司Alphabet于2017年开始,致力于将多伦多的Quayside社区改造成未来主义社区,承诺投入超过5000万美元用于使用技术减少交通拥放和垃圾填埋场。但是由于数据隐私问题,该计划迅速引发了争议&#xff0c…

应云而生,原力觉醒——解读云原生基础设施 | 凌云时刻

凌云时刻 极鲜速递 导读:云原生是云计算领域的热点之一。就像 “一千个人眼里有一千个哈姆雷特”,大家对"云原生"的定义也见仁见智。本文将介绍云原生应用架构和生命周期管理的进化方向。 作者 | 易立 来源 | 凌云时刻(微信号&…

从架构到代码:软件开发的七个新趋势 | 凌云时刻

凌云时刻 洞见 导读:本文根据阿里云原生团队资深技术专家陈立兵 (花名:雷卷)的直播整理而成,从领域驱动设计(DDD)、Reactive、Service Mesh和代码智能等几个方面展开,聊一聊他眼里的软件开发的发展趋势。 …

桌面版IDE将迎终结,Github发布代码空间Codespaces | 凌云时刻

凌云时刻 洞见 导读:2020年了,你拿啥写码呢? 作者 | 马超 来源 | 凌云时刻(微信号:linuxpk) Satellite 2020 5月7日,受疫情的影响,全球最大的开源社区GitHub也采用了线上的方式举办…

开源界也要封闭,OpenSource能否继续无国界 | 凌云时刻

凌云时刻 洞见 导读:开源已经站在了必须做转型的十字路口,问题是后面应该怎么走? 作者 | 马超 来源 | 凌云时刻(微信号:linuxpk) 写在前面 日前知名的云服务提供商HashiCorp在官网宣布:不允许中…

谁来帮帮只想救人的医生呢? | 凌云时刻

撰文| 哪嗒 编辑| 猛哥 图源| 网络及受访者 1 死人实在太多了。一个月内,贝加莫报纸刊登讣告的版面从 1 页半增加到 10 页。 贝加莫是意大利北部小城,距离米兰不到 50 公里,12 万人,却有8000 多人感染,其中四分之三的患…