数据库
文章平均质量分 84
凯丽考恩
清茶_
跟自己的热爱(有偿咨询Q857271710)
展开
-
数据库版本管理工具 Flyway 使用
Flyway是一款开源的数据库版本管理工具,使用简单,应用无侵入。面向 SQL,选择 Flyway不面向 SQL,选择 Liquibase。原创 2022-10-08 16:03:44 · 5431 阅读 · 0 评论 -
线上Mysql数据库被黑客删除勒索
目录前言删库事件过程后续删库流程安全防御总结距离黑客删库到数据恢复已经过去了几天了,悬着的心总算放了下来,因为数据丢失差一点点就要吃”国家饭“去了...人生第一次遭遇删库还是有必要记录下的哈哈哈这是我嫂子公司当初接下的一个外包项目,我后来去帮过忙,其线上所使用的服务器为阿里云服务器,然后mysql,nginx,java,py脚本全部署在一起,然后上周服务突然无法访问,看到日志抛出数据库连接异常,当下就感觉不对劲,连忙检查数据库发现业务库已经木得了,取而代之的是黑客留下的一份勒索信息 有生之年竟然能遇到删库原创 2022-07-07 11:05:08 · 2517 阅读 · 5 评论 -
mysql字符串分割多列展示
目录前言函数介绍substring_indexlengthsql 举例前言由于某些特殊需求,需要直接从数据库中取数据交给甲方自己处理,因此对一些特殊字符串进行处理,比如 1|2|3|4|5 ,代表五个层级id,但是现在需要将这一个字段拆成五个列展示,这时候就需要用到 mysql 的字符串分割函数了,示例 sql 主要用到了 case when 、length、substring_index,本文重点便是 substring_index函数介绍substring_index原创 2022-01-19 12:40:06 · 3749 阅读 · 0 评论 -
Liquibase的基本使用说明
介绍Liquibase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其优点主要有以下:支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Server, DB2等; 支持多开发者的协作维护; 日志文件支持多种格式,如XML, YAML, JSON, SQL等; 支持多种运行方式,如命令行原创 2021-03-18 17:31:52 · 18194 阅读 · 2 评论 -
PostgreSQL常用SQL
目录授权查看重复索引显示每张表上的索引数据库中单个表的大小(不包含索引)查出所有表(包含索引)并排序最耗IO SQL,单次调用最耗IO SQL TOP 5总最耗IO SQL TOP 5最耗时 SQL,单次调用最耗时 SQL TOP 5总最耗时 SQL TOP 5响应时间抖动最严重 SQL最耗共享内存 SQL最耗临时空间 SQL重置统计信息授权GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN原创 2021-03-18 16:34:23 · 409 阅读 · 0 评论 -
SpringBoot+Mybatis多数据源实践
一、前言随着业务量增大,数据库性能终究会遇到瓶颈,因此需要将部分业务进行分库处理,同时部分查询需要切换到性能更好的数据库,如阿里云的数仓,因此便会遇到多数据源场景,当然此时不同数据源之间的事务一致性就格外重要,本文就记录下SpringBoot+Mybatis实现多数据源事务一致的小案例二、多数据源事务这里准备记录两种实现方式,以便日后查阅方案一主要思路就是不同的数据源管理指定路径下的mapper文件,同时使用不同的事务管理类来进行事务区分,依赖spring的默认事务传播行为实现,即spr原创 2021-01-23 15:07:44 · 425 阅读 · 0 评论 -
Elasticsearch 倒排索引
一、简介Elasticsearch 是建立在全文搜索引擎库 Lucene 基础上的搜索引擎,它隐藏了 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API,不过掩盖不了它底层也是 Lucene 的事实。Elasticsearch 的倒排索引,其实就是 Lucene 的倒排索引。二、为什么叫倒排索引在没有搜索引擎时,我们是直接输入一个网址,然后获取网站内容,这时我们的行为是:document -> to -> words通过文章,获取里面的单词,这便.原创 2021-01-16 14:21:20 · 1462 阅读 · 0 评论 -
记postgresql一次cpu飙升问题
一、前言前不久线上环境出现了一次postgresql的cpu飙升的生产故障,cpu飙到95%且高居不下,最后发现是迭代中改过的一段sql导致,虽然直到现在都还没想好怎么优化,但这边还是先记录下这次故障以及从这次故障中学习到的postgresql中的一些知识点。二、关于故障1、故障现象大部分操作加载缓慢,出现加载超时报错问题2、故障解决过程1、查看服务器告警及日志信息,cpu使用率持续上升,在10:10时接近百分百,数据库连接数超过所设阈值,引起应用响应缓慢2、分析数据库sql,发现原创 2020-12-21 21:00:44 · 3263 阅读 · 1 评论 -
数据库分表实践
1、背景由于pg库单表数据量已经都过了千万级别,最大的已经到了8kw左右,由于数据量过大导致pg单表性能急剧下降,这背后的主要逻辑是数据量超过一定大小,B+Tree索引的高度就会增加,而每增加一层高度,整个索引扫描就会多一次IO,因此为了提升性能需要对这部分表需要进行分表操作,日后再根据业务功能将部分表进行拆分,完成分库操作。2、DB proxy与JDBC proxy既然需要做分表,那数据的分发、路由就需要进行处理,自下而上分为三层,分别为DB层、中间层、应用层。绝大部分方案都是在中间层进行实现原创 2020-11-17 10:18:03 · 414 阅读 · 0 评论 -
mac安装PostgreSQL
最近需要特别学习PostgreSQL,因此这里记录下安装过程安装及初始化使用homebrew安装brew install postgresql等待安装完成后,初始化:initdb /usr/local/var/postgres如果提示directory "/usr/local/var/postgres" exists but is not empty,那么需要清空该目录然后重新初始化,清空可以使用如下命令rm -rf /usr/local/var/postgres原创 2020-09-19 14:53:50 · 1730 阅读 · 0 评论 -
MongoDb常用基本操作符及查询语句示例
目录删除方法比较查询操作符逻辑查询和元查询操作符查询语句示例删除方法3.2版本之前db.users.remove({}),若不加任何条件则删除所有元素3.2版本之后db.users.deleteOne({}):删除单个数据db.users.deleteMany({}):删除满足条件的多个数据比较查询操作符方法名 描述 $gt 大于...转载 2019-12-23 22:37:50 · 167 阅读 · 0 评论 -
mongodb的入门学习
Mongodb是一个基于分布式文件存储的数据库,是一个介于关系数据库与非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。mongo支持的数据结构非常松散,是类似json的bson,mongo选用bson作为其存储结构的一个重要原因就是因为bson的可遍历性,所以能更好的支持复杂的数据类型。mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言...原创 2018-05-02 15:07:42 · 254 阅读 · 0 评论 -
Redis简单介绍
目录1、Redis简介2、Redis主要能做什么3、Redis和Memcached的区别以及与其他数据库的区别4、Redis的五种数据类型5、Redis的持久化功能RDB(快照)AOF(只追加文件)6、Redis的数据淘汰策略7、Redis的主从复制1、Redis简介Redis全称为Remote Dictionary Server(远程数据服务),是一款...转载 2019-08-05 09:04:17 · 7581 阅读 · 0 评论 -
mysql多列索引的生效规则
mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要,只需要知道结果,既然是索引那这个数据结构最后是排好序;就像新华字典他的目录就是按照a,b,c..这样排好序的;所以你在找东西的时候才快,比如你找 “中” 这个字的解释,你肯定就会定位到目录的 z 开头部分;组合索引可以这样理解,比如(a,b,c),abc都是排好序的,在任意一段a的...转载 2018-05-15 16:25:12 · 2828 阅读 · 0 评论 -
SpringBoot打印sql日志(附动态修改日志级别)
项目运行报错时,查看sql日志是非常好的排查手段,以前在spring框架下往往都是通过修改日志级别为DEBUG然后重启再次运行才生效,那么SpringBoot如何修改呢?SpringBoot的spring-boot-starter依赖默认已经包含日志依赖,其默认使用的日志框架为logback,且默认的日志级别均为INFO,若不配置日志输出路径,默认日志信息打印在控制台。为了打印sql日志信息,...原创 2019-04-18 15:06:31 · 6372 阅读 · 1 评论 -
树型结构小结
前言早上坐公交的时候刷到一篇朋友圈,名为:为什么Mysql数据库要使用B+树存储索引?看了下受益匪浅,不禁感慨大学学的数据结构知识全还回去了,因此准备回顾总结复习下树的知识,不过可能不全只会记一小部分自己需要的把,当然最后也会给出上面这个问题的答案。树的基本概念树和图一样都是非线性结构,树是n个节点的有限集合,当n=0时,称该树为空树,非空树有以下两个特征:1、有且仅有一个称...原创 2019-03-16 14:50:22 · 448 阅读 · 0 评论 -
mysql索引、优化及存储过程语法
什么是索引?索引就像是指向表中数据的指针,是在基本表上建立的一种数据库对象,与基本表分开存储,索引存在磁盘中。如果我们把书比作数据,那么各个章节就相当于表,书的目录就相当于索引。假设没有索引,数据库在查询时总是从第一条数据一条条往下遍历,直到查到符合要求的数据。而如果在所要查询的字段上建了索引,数据库就无须全盘遍历就能快速找到对应的数据。其中mysql索引的存储类型大致有两种:B+与...原创 2019-03-24 13:21:30 · 335 阅读 · 0 评论 -
mysql存储引擎、事务与锁机制小结
存储引擎数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。常用的存储引擎有:InnoDB、MyIsam、Memory、Archive在mysql v5.1版本之前,默认的存储引擎为MyIsam,而在其之后则变为了InnoDB引擎...原创 2019-03-24 10:44:42 · 432 阅读 · 0 评论