标签: SQL

MySQL系列之Redo Log、Undo Log和Binlog详解

事务的实现redolog保证事务的持久性,undolog用来帮助事务回滚及MVCC的功能。InnoDB存储引擎体系结构redologWriteAheadLog策略事务提交时,先写重做日志再修改页;当由于发生宕机而导致数据丢失时,就可以通过重做日志来完成数据的恢复。InnoDB首先将重做日志信息先放到...

MySQL 2021-04-06 140 0 0 阅读全文

Redis不仅仅是缓存,还是……

你需要一个经典数据库吗?一段时间以来,巨大数量的数据处理迫使所有的应用程序在数据库层前添加缓存策略。即使经典数据库进行了大量的下划线优化,仍然不能提供足够的速度和可用性。主要原因在于数据存储越远,获取数据就越困难。另一个原因是因为数据库中的数据通常保存在磁盘中,而不是在内存。经典数据库却是在内存上嵌...

Redis 2021-04-06 173 0 0 阅读全文

MybatisPlus实现逻辑删除功能

逻辑删除你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。什么是逻辑删除?逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1...

Java 2021-04-06 181 0 0 阅读全文

PostgreSQL 如何修改文本类型字段的存储方式

PostgreSQL存储方式分为以下4种:PLAIN避免压缩或者线外存储;而且它禁用变长类型的单字节头部。这是不可TOAST数据类型列的唯一可能的策略。只是对那些不能TOAST的数据类型才有可能。EXTENDED允许压缩和线外存储。这是大多数可TOAST数据类型的默认策略。首先将尝试进行压缩,如果行...

PostgreSQL 2021-04-06 133 0 0 阅读全文

MySQL 主从同步,事务回滚的实现原理

BinLogBinLog是记录所有数据库表结构变更(例如create、altertable)以及表数据修改(insert、update、delete)的二进制日志,主从数据库同步用到的都是BinLog文件。BinLog日志文件有三种模式。STATEMENT模式内容:binlog只会记录引起数据变更的...

MySQL 2021-04-07 125 0 0 阅读全文

浅谈Postgresql数据库VarChar、Char、Text的比较

如下所示:名字描述charactervarying(n),varchar(n)变长,有长度限制character(n),char(n)定长,不足补空白text变长,无长度限制简单来说,varchar的长度可变,而char的长度不可变,对于postgresql数据库来说varchar和char的区别仅...

MySQL 2021-04-06 132 0 0 阅读全文

记一次MySQL更新语句Update的踩坑

背景最近在一次线上作业过程中执行了一句DML语句,本以为万无一失,结果应用反馈说没有更新,数据还是没有变,最后经过排查才发现是我语句写错了,导致update语句执行的结果与预期不符。情景再现为了方便演示,建立一张用户表,同时插入五条数据。createtableuser(idint(12)commen...

MySQL 2021-04-12 113 0 0 阅读全文

Postgresql查询锁表以及解除锁表操作

1.--查询ACTIVITY的状态等信息selectT.PID,T.STATE,T.QUERY,T.WAIT_EVENT_TYPE,T.WAIT_EVENT,T.QUERY_STARTfromPG_STAT_ACTIVITYTwhereT.DATNAME='数据库用户名';上面查询结果中:pid就是...

PostgreSQL 2021-04-06 154 0 0 阅读全文

SpringBoot整合Mybatis常见问题(小结)

Spring中常见问题1.NoSuchBeanDefinitionException2.'..Service'thatcouldnotbefoundservice找不到3.port80wasalreadyinuse端口号被占用4.TemplateInputException模板解析异常或找不到模板1...

Java 2021-04-06 143 0 0 阅读全文

Postgresql数据库根据年月查询出本月的所有数据操作

表里的所有数据:现在我要根据创建时间的年月查询当月所有的数据比如前台传给我一个年月的字段planTimeMonth,值为2018-06那么我们需要查询创建时间为6月份的所有数据sql:java代码中sql拼接:criteria.andCondition("to_char(crt_time,...

PostgreSQL 2021-04-06 132 0 0 阅读全文

Postgresql 实现查询一个表/所有表的所有列名

假设postgres有数据库testdb在testdb下执行下列sql语句,得到所有表的信息select*frominformation_schema.columnswheretable_schema='public'andtable_name'pg_stat_statements';在testdb...

PostgreSQL 2021-04-06 162 0 0 阅读全文

SpringBoot整合Druid连接池的步骤

使用springboot默认的连接池导入springbootdata-jdbc依赖org.springframework.bootspring-boot-starter-data-jdbc配置文件配置连接池spring:datasource:username:rootpassword:5201314...

Java 2021-04-12 108 0 0 阅读全文

Python 基于PYMYSQL使用MYSQL数据库

在做测试的时候都会用到数据库,今天写一篇通过python连接MYSQL数据库什么是MYSQL数据库MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relat...

Python 2021-04-06 138 0 0 阅读全文

MySQL是如何实现主备同步

主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案。在生产环境中,会有很多不可控因素,例如数据库服务挂了。为了保证应用的高可用,数据库也必须要是高可用的。因此在生产环境中,都会采用主备同步。在应用的规模不大的情况下,一般会采用一主一备。除了上面提到的数据库服...

MySQL 2021-04-06 157 0 0 阅读全文

MySQL如何优化索引

1. MySQL如何使用索引索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后遍历整个表以找到相关的行。表越大,花费越多。如果表中有相关列的索引,MySQL可以快速确定要在数据文件中间查找的位置,而不必查看所有数据。这比顺序读取每一行要快得多。大多数MySQL索引(PR...

MySQL 2021-04-06 96 0 0 阅读全文

浅谈Mybatis中ResultType为Hashmap的情况

现在有一张user表id,name,age我们进行一个简单的查询:selectid,name,agefromuser查询完后,怎么去接收这个查询结果呢,通常在这个mapper.xml对应的接口中使用List做为返回值去接收,最后存储的样子就是下面的图这是一个很简单的单表查询操作,其实这种简单的单表查...

Java 2021-04-11 161 0 0 阅读全文

Mysql插入前判断数据是否存在的操作

业务场景:需要记入访客的访问情况,但不能重复记入可以插入前进行判断要插入的数据是否存在业务代码如下:INSERTINTOt_topic_vistor(user_id,topic_code)SELECT'218','XQ33019920170811142528217'FROMDUALWHERENOTE...

MySQL 2021-04-11 161 0 0 阅读全文

基于Postgresql数据库锁表问题的解决

查询是否锁表了selectoidfrompg_classwhererelname='可能锁表了的表'selectpidfrompg_lockswhererelation='上面查出的oid'如果查询到了结果,表示该表被锁则需要释放锁定selectpg_cancel_backend(上面查到的pid)...

PostgreSQL 2021-04-06 168 0 0 阅读全文

Java事务的概念浅析

事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行...

Java 2021-04-11 121 0 0 阅读全文

解决MySQL读写分离导致Insert后Select不到数据的问题

MySQL设置独写分离,在代码中按照如下写法,可能会出现问题//先录入this.insert(obj);//再查询Objectres=this.selectById(obj.getId());res:null;线上的一个坑,做了读写分离以后,有一个场景因为想方法复用,只传入一个ID就好,直接去库里查...

MySQL 2021-04-11 161 0 0 阅读全文