PostgreSQL
22 篇文章
pgsql
PostgreSQL—Explain查询计划
http://postgres.cn/docs/15/using-explain.html 在使用数据库时,经常会有这样的疑问:“我的表对应字段已经创建了索引,为什么这个SQL 语句执行还是这么慢?”…
PostgreSQL—自定义函数
PostgreSQL函数也称为PostgreSQL存储过程。 PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。 …
PostgreSQL—逻辑复制
测试采用 postgres:17beta2 版本的docker images 逻辑复制与流复制的区别 PostgreSQL 支持两种主要的复制模式:物理复制(也称为流复制)和逻辑复制。这两种复制模式有…
PostgreSQL—监控
PostgreSQL的监控方案很多,功能强悍的包括zabbix、prometheus等,再搭配上grafana和echarts等可视化工具,逼格杠杠。还有针对PostgreSQL特定的监控如pg_to…
PostgreSQL—如何查找TOP SQL
数据版本为:postgres14 (不同版本之间的配置会有所变化) pg_stat_statements模块提供了一种跟踪服务器执行的所有 SQL 语句的计划和执行统计信息的方法。 该模块必须通过在p…
Java—P6Spy数据库SQL记录
P6Spy是一个框架,它可以无缝地拦截和记录数据库活动,而无需更改现有应用程序的代码。一般我们使用的比较多的是使用p6spy打印我们最后执行的sql语句。常用的数据框架也会自带打印sql的功能,比如j…
Redis—集群方式
集群高可用常见的方式 Replication-Sentinel模式 Redis-Cluster模式 中心化代理模式(proxy模式) Replication-Sentinel模式 Redis sent…
Redis—注解接口限流
Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。 在项目中因为某个接口疯狂被请求导致线程阻塞,所以要对单个接口加上阻塞。 准备工作 添加POM依赖 <parent…
SpringBoot—数据库读写分离
在集群数据库里,数据库的读写分离也是常见的优化手段。 读写分离有很多种方式可以来实现,比如用sharding-jdbc等框架来实现,不过这里用最简单的方式。 方案使用了AbstractRoutingD…
PostgreSQL—集群方案
当单机的PG数据库无法满足企业需求的时候,那么就要寻求其他的解决方案,为单机的数据库升级改造,建立HA高可用集群数据库,也可以是分布式的集群数据库,这里简单的介绍几种集群数据库的方案。 常用的高可用架…
PostgreSQL—常用指令
连接PostgreSQL 数据库 psql -d database -U user -W psql -d postgres -U postgres -W 用户 postgres 的口令: psql (…
PostgreSQL—测试工具PGbench
pgbench 是一个简单的给 PostgreSQL 做性能测试的程序。它反复运行同样的 SQL 命令序列,可能是在多个并发数据库会话上头,然后检查平均的事务速度(每秒的事务数 tps)。缺省的时候,…
Mybatis-设计模式总结
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。 Mybatis至少…
Mybatis原理—SqlSession下的四大对象(Executor、StatementHandler、ParameterHandler和ResultSetHandler)
SqlSession下的四大对象介绍 通过前面的分析,我们应该知道在Mybatis中的,首先是通过SqlSessionFactoryBuilder加载全局配置文件(包括SQL映射器),这些配置都会封装…
Mybatis原理—Mapper接口的动态代理Sql执行过程
前面介绍了SqlSessionFactory和SqlSession的构建过程,然后就可以通过SqlSession来获取Mapper对象了,所以这章来学习Mapper接口是如何通过动态代理来创建对象的。…
Mybatis原理—SqlSession的构建过程
SqlSession的构建过程 在上一章,详细的介绍了SqlSessionFactory的构建过程,它是用来获取SqlSession对象的,所以本章节就主要讲述SqlSession的构建过程。 htt…
Mybatis原理—SqlSessionFactory的构建过程
Mybatis成员 Mybatis的运行分为两大部分: 一是SqlSessionFactory的创建过程,它主要是通过XMLConfigBuilder将我们的配置文件读取并且缓存到Configurat…
MySQL—理解索引 (3)
常见优化方法 联合索引最左前缀原则 复合索引遵守「最左前缀」原则,查询条件中,使用了复合索引前面的字段,索引才会被使用,如果不是按照索引的最左列开始查找,则无法使用索引。 比如在(a,b,c)三个字段…
MySQL—理解索引 (2)
MySQL查询过程 想要更好的优化查询,首先要了解其整体查询过程,从客户端发送查询请求,到接收到查询结果,MySQL服务器做了很多工作。 逻辑架构 MySQL逻辑架构整体分为三层,分别为客户端层、核心…
MySQL—理解索引 (1)
为什么需要索引 总体来说,索引是为了提高查询速度的,当数据量比较大时,从头到尾依次检索是无法接受的。另外,存储的数据会包含多个属性来描述业务实体,属性可以连续或分开存储,分别对应到MySQL和HBas…
Mybatis—插入数据后返回自增主键ID
开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条…
Mybatis-plus—kotlin代码生成
mybatis-plus 2.1.5 发布,新增 kotlin 代码生成 [v2.1.5] 2017.11.11 通用枚举 spring boot 兼容调整PostgreSQL 支持关键词非关键词转换…
Mybatis—手写脱敏插件
1. 前言 在日常开发中,身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。否则容易造成个人隐私泄露,客户资料泄露,给不法分子可乘之机。但是数据脱敏不是把敏感信息隐藏起来,而是看起来像真的一…
Redis—Geo功能实现查找附近的位置
1、前言 我们平时骑共享单车或者是找酒店,餐馆的时候总是会用到查找附近的功能。 地图后台如何根据自己所在位置查询来查询附近的呢? 显然通过经纬度坐标来查询。 其次为什么不用MySQL呢?MySQL是我…
Redis—实现消息队列
redis消息队列适合轻量级高并发的情况,比如秒杀,及时数据分析等。 首先来看一下redis在SpringMvc上的配置,这个相比起Boot的配置坑会比较多! SpringMvc版 1.依赖配置 2.…
SQL 语句大全
一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- …
Mybatis-Plus—多数据源
特性 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库敏感配置信息 加密 ENC()。支持每个数据库独立初始化表结构schema和数据库database。支持 自…
SQL Server—trigger触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 触发器对表进行插入、更新、删除的时候会自动执行…
Java—利用触发器监听sqlserver数据库
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 触发器对表进行插入、更新、删除的时候会自动执行…
Mybatis(Plus)—代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Control…