![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 92
各类数据库
挥之以墨
一个半路出家的加瓦攻城狮,擅长搬砖
展开
-
【MongoDB】数据的自动过期,TTL索引
在近期的工作中,使用了MongoDB来保存了一些日志数据,但是这些日志数据具有一定的时效性,也就是按照业务的需要,保存xx天即可,在超过了这个时间之后,需要删除过时的日志。按照之前的做法,可以使用定时任务,例如:Spring的定时器,xxl-job等工具,在每天凌晨的时候删除数据,这种方法虽然可行,但是需要额外的编码工作。那有没有一种方式能够简单的搞定过期数据的清理呢?当然,MongoDB提供了一种TTL索引的机制,可以非常方便的处理这种需求,下面是官方文档,有阅读能力的同学可以直接看这个文档。原创 2024-04-18 15:19:17 · 1181 阅读 · 0 评论 -
【MySQL实践】一个隐蔽的问题导致 Field ‘xxx‘ doesn‘t have a default value
就像标题上说的,这个问题的隐蔽之处在于,即使是将字段的默认值drop了,在各类可视化界面中也看不出来,例如下图红框中的字段,其中name没有默认值,age字段有默认值null,但是根本看不出来:这种情况可以,可以使用`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(64) COMMENT '名称',`status` tinyint(4) NOT NULL COMMENT '状态',原创 2024-01-24 15:45:55 · 1089 阅读 · 0 评论 -
【MongoDB】多级嵌套数组的操作 含Mongo Shell 和 MongoTemplate的增删改细节
本文整理了操作多级嵌套的数组的Mongo Shell、js脚本,以及使用MongoTemplate的操作方式,操作嵌套数据需要使用到 MongoDB 的两个特性: $[]和arrayFilters,本文中的数据一共嵌套了两层数组,包含了一级和二级嵌套数组的操作,篇幅较长,非常详细,快来看看吧!原创 2023-02-09 12:40:00 · 2594 阅读 · 4 评论 -
【MySQL】(六)事务的基本操作
1.事务自动提交设置-- 设置自动提交状态,1:开启,0:关闭set autocommit=0;-- 查看当前自动提交状态show variables like '%autocommit%';2.事务隔离等级查看及设置-- 事务隔离等及查看select @@tx_isolation;-- 设置read uncommitted级别:set session transaction isolation level read uncommitted;-- 设置read committed级别:原创 2020-09-15 15:09:37 · 339 阅读 · 0 评论 -
【MySQL】(四)MyISAM及InnoDB中的锁
1.锁的概述1.1.锁是什么?除了CPU、内存、I/O等传统资源,数据库中的数据也是一种共享资源,锁是一种协调多个线程并发访问某一贡献资源的机制。1.2.锁的作用解决并发冲突,保证数据库数据的一致性。1.3.MySQL中锁的种类分为表级锁、页级锁、行级锁。表级锁加锁开销最小,加锁最快,但锁的粒度最大,并发能力最低,不会死锁。行级锁加锁开销最大,加锁最慢,但锁的粒度最小,并发能力最高,会死锁。页级锁介于两者之间,会死锁。在MySQL的引擎中,MyISAM和MEMORY支持表级锁,BDB原创 2020-11-05 18:17:08 · 420 阅读 · 0 评论 -
【MySQL】(五)InnoDB中各种锁的验证
1.InnoDB锁的验证接上一篇文章,【MySQL】锁机制,这里对里面提到的InnoDB中的锁做验证。所有的验证都是在RR隔离级别下进行的。首先创建并初始化test表数据:CREATE TABLE `test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `sn` int(11) DEFAULT NULL, `uq` int(11) DEFAULT NULL, PRIMARY KEY (`id`), U原创 2020-11-06 14:02:37 · 333 阅读 · 0 评论 -
【MySQL】事件(Event)的基本使用
1.确认是否开启了MqSQL的定时事件功能-- 查看定时任务开关是否被打开SHOW VARIABLES LIKE 'event_scheduler'; -- 如果event_scheduler=OFF执行下面的sql将它打开set GLOBAL event_scheduler=on;2.EVENT的类型在MySQL中,EVENT的类型一共有两种,AT和EVERY。其中,AT表示在固定的时间执行一次,而EVERY表示只要到达设置的时间点都可以执行,也就是循环执行。3.固定时间执行的EVENT原创 2020-09-23 09:16:05 · 878 阅读 · 0 评论 -
【MySQL】(三)索引的数据结构及其创建和使用
1.索引概念1.1.索引的定义和作用索引是一种用来协助快读查询或更新数据的有序的数据结构。如何理解这句话呢?首先,我们数据表中的数据是以文件的形式存放在磁盘上,每一行都有一个磁盘地址。我们在检索数据的时候,需要一行一行的遍历数据表,获取出满足条件的数据行。如果使用了索引,通过索引的数据结构特性,可以很快的找到存放在索引文件中的,满足条件的数据行的磁盘地址,通过磁盘地址可以很快的定位数据。如果把数据表比作一本字典,索引就类似于这本字点的目录。我们要查某个字的时候,不可能从第一页开始翻,而是先去查找原创 2020-11-09 22:40:45 · 887 阅读 · 0 评论 -
【MySQL】(七)事务及MVCC原理
1.事务的概念是数据库的最小工作单元,体现为一条或多条DML的集合,这个集合中所有的语句要么都成功,要么都失败。在MySQL的4种引擎中,只有InnoDB支持事务(其余三种为MyISam、bdb、memory)。2.事务的特性2.1.四大特性-原子性、一致性、隔离性、持久性原子性:一个事务中的所有操作都是一个整体,要么都成功,要么都失败。一致性:数据在事务操作前后必须都要满足业务规则的约束。比如一个账户有90块钱,但是支付100成功了,余额就是-10。这样就没有满足业务的要求。隔离性:数据库允原创 2020-09-15 10:13:46 · 364 阅读 · 0 评论 -
【MySQL】(二)整体架构与SQL语句的执行流程
文章目录MySQL1.MySQL的架构1.1.连接层1.2.服务层1.3.存储引擎2.SQL语句执行流程2.1.几个基本概念2.1.1.随机IO/顺序IO2.1.2.页2.1.3.Buffer Pool2.1.4.脏页与刷盘2.1.5.redo log2.1.6.undo log2.1.7.bin log2.2.查询语句2.3.更新语句MySQL1.MySQL的架构MySQL的整体架构可以分为三层:连接层、服务层、存储引擎。其中服务层又是由4个部分组成,分别为:查询缓存、解析器、优化器、执行器。原创 2021-09-26 17:53:34 · 191 阅读 · 0 评论 -
【MySQL】(一)CentOS7下MySQL的安装配置
1.官网下载安装mysql-server1.1.下载安装MySQL社区版wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpmrpm -ivh mysql57-community-release-el7-9.noarch.rpmyum install mysql-server如果不想要这个版本,可以在http://repo.mysql.com中找自己需要的版本。1.2.安装成功后重启服务service mys原创 2020-09-16 16:23:50 · 156 阅读 · 0 评论