![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 88
记录一些笔记
嗯mua.
这个作者很懒,什么都没留下…
展开
-
【MongoDB】SpringBoot整合MongoDB
如果没有包含”ls“这条文档,那么就会插入”ls“这条文档,但是如果id重复,那么就会抛出异常。创建一个 ”products“ 集合,如果不存在则创建,存在则不创建。首先创建一个 User 类,给它一些基本属性。方法,可以一次性插入整个数据,效率更高。原创 2023-07-17 15:19:39 · 1687 阅读 · 0 评论 -
【Mysql】分库分表
IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。CPU瓶颈:排序、分组、连接查询、聚合统计等sql会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。为解决以上问题,我们需要对数据库进行分库分表处理。分库分表的中心思想就是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。原创 2023-04-21 23:48:05 · 509 阅读 · 0 评论 -
【Mysql】主从复制
主从复制是指主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后再从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。主库出现问题,可以快速切换到从库提供服务。实现读写分离,降低主库的访问压力。可以在从库中执行备份,以避免备份期间主库不能写入的问题。原创 2023-04-19 23:59:42 · 302 阅读 · 0 评论 -
【Mysql】日志
开启了查询日志之后,在MySQL的数据存放目录,也就是 /var/lib/mysql/ 目录下就会出现 mysql_query.log 文件。慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于 min_examined_row_limit 的所有的SQL语句的日志,该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld.log。也可以在mysql的配置文件中配置二进制日志的过期时间,设置了之后,二进制日志过期会自动删除。原创 2023-04-18 17:43:08 · 644 阅读 · 0 评论 -
【Mysql】Mysql管理及常用工具
由于服务器生成的二进制日志文件以二进制格式保存,所以如果想要检查这些文本的文本格式,就会使用到mysqlbinlog日志管理文件。mysqlshow客户端对象查找工具,用来很快地查找存在哪些数据库,数据库中的表,表中的列或者索引。选项可以在mysql客户端不登录的情况下执行sql语句。是一个执行管理操作的客户端程序,可以用它来检查服务器的配置和当前状态,创建并删除数据库等。,mysql认为是不安全的,需要存储在mysql信任的目录下。该mysql不是指mysql服务而是指mysql的客户端工具。原创 2023-03-30 18:26:37 · 371 阅读 · 0 评论 -
【Mysql】MVCC
undo log:回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志。当insert的时候,产生的undo log日志只在回滚时需要,在事务提交后,可被立即删除。而update、delete的时候,产生的undo log日志不仅在回滚时需要,在快照读时也需要,不会立即被删除。原创 2023-03-30 15:23:02 · 291 阅读 · 0 评论 -
【Mysql】事务原理
而缓冲区的脏页数据并不是实时刷新的,而是一段时间之后将缓冲区的数据刷新到磁盘中,假如刷新到磁盘的过程出错了,而提示给用户事务提交成功,数据却没有持久化下来,这就出现问题了,没有保证事务的持久性。当我们在一个事务中,执行多个增删改的操作时,InnoDB引擎会先操作缓冲池中的数据,如果缓冲区没有对应的数据,会通过后台线程将磁盘中的数据加载出来,存放在缓冲区中,然后将缓冲池中的数据修改,修改后的数据页我们称为脏页。其中的原子性,一致性,持久性实际上是由InnoDB中的两份日志来保证的,一份是。原创 2023-03-28 23:38:04 · 413 阅读 · 0 评论 -
【Mysql】InnoDB引擎
MYSQL5.5版本开始,默认使用InnoDB存储引擎,他擅长事务处理,具有崩溃恢复特性。在日常开发 中使用非常广泛。下面是InnoDB架构图,左侧为内存结构,右侧为磁盘结构。原创 2023-02-24 13:32:45 · 238 阅读 · 0 评论 -
【Mysql】 锁
*锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁:锁定所有的数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。原创 2023-02-22 12:57:38 · 429 阅读 · 0 评论 -
【Mysql】触发器
触发器是与表有关的数据库对象,指在insert、update、delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的sql语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。触发器类型NEW 和 OLDINSERT 型触发器NEW 表示将要或者已经新增的数据UPDATE 型触发器。原创 2023-02-21 10:03:09 · 486 阅读 · 0 评论 -
【Mysql】存储过程
存储过程:存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。用户定义变量是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 “@变量名”使用即可,其作用域为当前会话。1)赋值注:赋值时,可以使用 = ,也可以使用 :=。原创 2023-02-20 15:58:50 · 1713 阅读 · 0 评论 -
【Mysql】视图
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视 图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作 就落在创建这条SQL查询语句上。原创 2023-02-08 15:55:50 · 315 阅读 · 0 评论 -
【Mysql】SQL优化
当数据量很大时,在执行count操作时,是非常耗时的。MYISAM:MYISAM引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个 数,效率很高;但是如果是带条件的count,MyISAM也慢。InnoDB:InnoDB引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出 来,然后累积计数。如果想要大幅度提高InnoDB表的count效率,原创 2023-02-07 16:38:37 · 403 阅读 · 0 评论 -
【Mysql】索引
索引:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上实现高级查找算法,这种数据结构就是索引。简而言之,索引是一种数据结构,用来高效的获取数据。1)无索引情况。原创 2023-02-06 23:10:07 · 404 阅读 · 0 评论 -
【Mysql】SQL性能分析
在控制台中通过命令命令可以提供服务器状态信息。通过上述命令,我们发现当前数据库是以查询为主,还是以增删改为主,从而为数据库优化提供参考依据。如果是以增删改为主,我们可以考虑不对其进行索引的优化;如果是以查询为主,那么就要考虑对数据库的索引进行优化了。如果当前数据库是以查询为主,那么我们可以借助于慢查询日志来定位针对于哪些查询语句进行优化。原创 2023-02-05 22:14:32 · 978 阅读 · 1 评论 -
【Mysql】Mysql的存储引擎
*存储引擎:存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。**存储引擎是基于表的,而不是 基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果 没有指定将自动选择默认的存储引擎。CREATE TABLE 表名(字段 1 字段 1 类型 [ COMMENT 字段 1 注释 ] , . . . . . . 字段n 字段n类型 [ COMMENT 字段n注释 ]) ENGINE = INNODB [ COMMENT 表注释 ];原创 2023-01-25 14:34:37 · 838 阅读 · 0 评论 -
【Mysql】事务的四大特性(ACID)
事务A读操作没有获得数据,事务B此时插入对应数据,由于事务A判断数据库中没有对应数据,所以向数据库中插入数据,但是插入数据失败!于是再次进行读操作,如果我们已经解决了“不可重复读”的问题,那么第四步的读操作也会和第一步一样为空。虽然事务A的两次读操作都说没数据,但是插入数据操作却提示有数据,这就是幻读。如图上所示顺序,事务A修改了数据库数据但还未提交,事务B读取到了事务A中未提交的数据。事务A第一步和第三步的两次读操作获得的数据不一致。Mysql的默认隔离级别为。原创 2023-01-24 21:45:13 · 808 阅读 · 1 评论 -
【Mysql】Mysql多表查询——子查询
SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个。转载 2023-01-24 20:38:10 · 2510 阅读 · 0 评论 -
【Mysql】常用函数的应用
3)查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)2)YEAR , MONTH , DAY:当前年、月、日。4)datediff:获取两个日期相差的天数。5)substring : 截取子字符串。3)date_add:增加指定的时间间隔。1) concat : 字符串拼接。2) lower : 全部转小写。1)curdate:当前日期。4)trim : 去除空格。3)lpad : 左填充。1)ceil:向上取整。原创 2023-01-23 11:06:23 · 1242 阅读 · 0 评论 -
【Mysql】 数据库用户管理
英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。原创 2023-01-22 19:52:31 · 882 阅读 · 0 评论 -
【MongoDB】学习笔记(一) MongoDB相关操作
需要在与 目录同级的目录下新建一个 目录。然后在 目录下输入命令行1.1.2 配置文件方式启动服务需要在与 目录统计的目录下新建一个 文件,内容如下:启动方式如下,在 目录下输入命令行:更加完整的配置文件内容可参考如下配置:1.2 连接mongodb在 目录下输入命令查看已有数据库退出mongodb2. Linux系统:2.1 mongodb启动服务 目录地址和配置文件地址每个人都可能不一样,需要做相应改动。2.2 mongodb停止服务先查到pid,然后kil原创 2022-11-08 19:25:54 · 175 阅读 · 0 评论