文章分类 - MySQL
摘要:种子文件概述 Sequelize-Cli 中的种子文件是专门用于编写测试数据的 我们知道在 Sequelize-Cli 中不同的阶段会创建不同的数据库 但是刚创建出来的数据库是没有数据的, 所以为了方便我们在不同的阶段演示和调试 我们可以在种子文件中提前编写测试数据, 以便于我们在不同的阶段中使用
阅读全文
摘要:如何修改表 使用 Sequelize-Cli 管理数据库的目的就是为了监控数据库的变化 所以我们不能直接修改表的结构, 如果要修改, 必须通过 migration 文件修改 这样我们就能记录修改的每一步操作, 就能追踪修改的整个过程, 就能回退到指定版本 修改表步骤 通过 migration:gen
阅读全文
摘要:在上一篇文章当中已经介绍了如何创建对应的数据库了,本文主要就是基于上一篇文章继续延伸下来的,主要内容就是介绍如何在创建的数据库当中进行创建表,和回退等相关操作。 创建模型 语法: npx sequelize model:generate --name xxx --attributes key:typ
阅读全文
摘要:官方文档:https://sequelize.org/v5/manual/migrations.html Sequelize-CLi 概述 在编程开发中为了能够更好的管理代码, 我们可以使用 Git 来管理我们的代码 实现对代码变更的追踪, 实现在各个不同版本之间切换 在数据库开发中为了能够更好的管
阅读全文
摘要:关于本文主要的内容为多对多表之间的关联查询,如何进行绑定表之间的关系的,一对一,一对多,在前面的文章当中上和中文章当中都已经介绍过了,本文就详细的来带大家来看看多对多的玩法首先需要创建三张表,以及对应的测试数据,创建模型代码如下: // 1.导入Sequelize const Sequelize =
阅读全文
摘要:本文主要介绍的内容为,建立表之间的关系,和标题的内容相关,在我们之前建立关系的时候是在模型创建完毕之后才进行关系的建立的,如果在没有建立关系的情况下创建模型是不会自动添加外键的: // 1.导入Sequelize const Sequelize = require('sequelize'); (as
阅读全文
摘要:本文主要介绍的内容为一对多的关系如何进行绑定与查询,首先添加一对多的数据,添加 book 表即可: INSERT INTO `demo`.`book` (`id`, `name`, `price`, `uId`) VALUES (4, '玩转.net', 66, 1); INSERT INTO `d
阅读全文
摘要:在关联查询当中分别有一对一,一对多,多对多等关系,首先,先来看一对一的,创建一个 User 表,存储的就是用户信息,然后在创建一个 Book 表,存储的就是用户拥有的书,它们之间的关系是一对一的,一个用户只能有一本书: // 1.导入Sequelize const Sequelize = requi
阅读全文
摘要:分页 在看分页之前首先来看一个关键字,就是 offset 含义为 跳 过多少条数据: let users = await User.findAll({ // 跳过多少条数据 offset: 2 }); 还有一个关键字为 limit 含义为 取 多少条数据: let users = await Use
阅读全文
摘要:在上一篇文章当中都是针对单条数据的操作,那么本文主要介绍的内容都是基于查询进行的,可以进行查询多个,强调几点,关于使用 Sequelize 连接 MySQL 相关部分的代码这里就不在贴出来了,主要就是贴出相关核心代码,方便参阅。 查询多条数据 let users = await User.findA
阅读全文
摘要:关于数据的新增在前面已经介绍过了,所以本文主要介绍的内容为查询,修改,删除不包括新增。 查询数据 根据主键查询 // 1.导入Sequelize const Sequelize = require('sequelize'); (async () => { // 2.配置连接信息 const sequ
阅读全文
摘要:本文是紧接着上一篇Sequelize-创建表进行的,所以你在看本文的内容之前你可以先看看之前的文章把对应的表首先创建出来然后在来看看,对应的数据该如何进行创建。 因为之前已经创建好了对应的表了,所以创建模型那块的代码就不需要再次调用 sequelize.sync(); 了,要想添加一条对应的数据其实
阅读全文
摘要:数据库瓶颈 概述 不管是 IO 瓶颈,还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。 IO 瓶颈 第一种 磁盘读 IO 瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的 IO,降低查询速度 分库和垂直分表 第二种 网络 IO 瓶颈,
阅读全文
摘要:使用方法 explain sql语句 EXPLAIN SELECT * FROM department; 创建 customer 表,SQL 如下 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- Table structure for cus
阅读全文
摘要:表设计准则 🐤满足关系数据库的三范式 1NF 是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值 第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库 2NF 要求数据库表中的每个实例或行必须可以被惟一地区分 设置主键 3NF 要求一个数据库表
阅读全文
摘要:什么是索引 帮助 MySQL 高效获取数据的一种数据结构 索引就是一种数据结构 类似新华字典的索引目录, 可以通过索引目录快速的查到你想要的字 排好序的快速查找数据这就是索引 为什么要建立索引 提高查询效率,没有排序之前是一个一个往后找的,通过索引进行排序之后,可以直接定义到想要的位置 排好序,快速
阅读全文
摘要:SQL 性能下降的表现 执行时间长 等待时间长 性能下降的原因 查询语句写的不好,各种连接,各种子查询导致用不上索引或者没有建立索引 建立的索引失效,建立了索引,在真正执行时,没有用上建立的索引 关联查询太多 join 服务器调优及和个配置参数导致,如果设置的不合理,比例不恰当,也会导致性能下降,S
阅读全文
摘要:创建示例表 部门表 DROP TABLE IF EXISTS `department`; CREATE TABLE `department` ( `id` int(11) NOT NULL AUTO_INCREMENT, `deptName` varchar(30) DEFAULT NULL, `a
阅读全文
摘要:SQL 编写顺序 select distinct 查询的字段。 from 表名。 JOIN 表名。 ON 连接条件。 where 查询条件。 group by 分组的字段。 having 分组后的查询条件。 order by 排序条件升序或者降序。 limit 查询起始位置, 查询条数。 MySQL
阅读全文
摘要:存储引擎的概念 MySQL 中的数据用各种不同的技术存储在文件(或者内存)中。 这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 这些不同的技术以及配套的相关功能在 My
阅读全文