
数据库
文章平均质量分 76
enjoy编程
Stay hungry, stay foolish.(求知若饥,虚心若愚。)10+IT行业老兵,熟悉大数据处理,分布式编程, 喜欢使用java、python解决工作、生活中的问题
展开
-
docker--Prometheus、Grafana、node_exporter的安装配置及Springboot集成Prometheus示例
Prometheus一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,计算规则表达式,显示结果,并在观察到某些条件为真时触发警报。可观察性侧重于根据系统产生的数据了解系统的内部状态,这有助于确定基础设施是否健康。Prometheus是用于监视和观察系统的核心技术本文针对Prometheus、Grafana、node_exporter的安装配置进行讲解并提供Springboot集成Prometheus示例原创 2023-12-21 16:30:33 · 1410 阅读 · 0 评论 -
Oracle常用运维SQL-SQL执行性能及锁表等查询分析
在Oracle数据库运维中,有一些常用的SQL语句可以帮助管理员进行性能优化、监视数据库活动、诊断问题以及执行常见的管理任务。本文针对这些常用的运维SQL进行总结,针对常用的系统表给出使用示例原创 2023-11-05 22:42:51 · 510 阅读 · 0 评论 -
Oracle TEMPORARY TABLE 临时表的使用及删除报ORA-14452错误的解决办法
在Oracle数据库中,可以使用`CREATE GLOBAL TEMPORARY TABLE`语句来创建临时表。临时表是一种特殊的表,其数据仅在会话级别可见,会话结束后数据会自动清除。这对于需要临时存储数据的情况非常有用。原创 2023-11-05 20:57:22 · 830 阅读 · 0 评论 -
docker for windows--快速搭建各种关系型数据库RMDB的测试环境
在实际工作中,需要搭建关系型数据库(RMDB)进行功能的测试与验证,本文基于docker镜像,提供针对关系型数据库MySQL、PostgreSQL、SQLServer测试数据库的快速搭建。包含了拉取关系型数据库(RMDB)并启动容器,创建数据库、用户及相应的授权操作,最后提供建表及示例数据,用于进行功能测试验证。原创 2023-02-18 23:17:04 · 954 阅读 · 0 评论 -
MySQL 5.7.x--命令行自带帮助文档的使用,超级棒!!!
在MySQL使用过程中,你是否经常遇到如下问题- 某个操作语法忘记了,需要快速查找- 当前版本上,某个字段类型的取值范围- 当前版本上,支持哪些函数,快速入门的示例- 当前版本上,是否支持某个功能你想的办法是什么? 去查MySQL的官方文档和某一本书。当然,在官方文档或书籍中,都可以清楚地查到,但是却要耗费大量的时间和精力。但有时无法上互联网或身边没有相应的书籍时,又该怎么办呢?最好的解决办法就是使用MySQL命令行自带的帮助文档,这样在遇到问题时,就可以快速的进行查询。原创 2022-09-04 20:12:50 · 406 阅读 · 0 评论 -
docker for windows--MySQL 5.7.x 主从及主从复制配置及问题解决
docker for windonws--MySQL 5.7.x 主从及主主复制配置及问题解决本文在docker for windonws的docker desktop上,基于docker容器搭建MySQL 5.7.x主从及主主复制,记录了搭建步骤及测试过程,并针对相关知识及碰到的问题进行讲解。.........原创 2022-09-01 00:30:00 · 674 阅读 · 0 评论 -
Win10--MySQL8.0.29 免安装版本的配置教程及问题解决
有时在家工作,不能连接服务器的MySQL数据库,就想着在个人电脑上安装一下MySQL,以方便针对代码进行调试本文提供在win10下,针对MySQL8.0.29 免安装版本的配置教程及问题解决原创 2022-05-08 11:01:17 · 4744 阅读 · 0 评论 -
MySQL 5.7.x 中如何实现类似开窗函数的功能,如分组后取每组的topN等
在SQL中经常遇到一种需求:分组排序后取TopN、累加和最大值之间的差值。这样的需求,如果数据库支持窗口函数,如`row_number() OVER (PARTITION BY dept_no ORDER BY emp_salary DESC ) AS row_num` 是很容易实现的。在MySQL 8.0 之前的版本不支持窗口函数。但是目前还有很多人在使用5.7.x版本,在MySQL 5.7.x版本中,如何实现开窗函数的功能呢? 本文提供这方面的示例。原创 2022-01-21 21:45:00 · 5796 阅读 · 4 评论 -
MySQL基于时间范围分区的2种方案
在MySQL 5.7中,有2种基于时间范围或间隔的分区方案,可以根据实际业务需要进行选择。本文提供了针对DATE、TIME、DATETIME、TIMESTAMP 列如何正确进行时间分区的示例原创 2022-01-20 20:15:00 · 4539 阅读 · 0 评论 -
国产数据库OpenGauss--TPC-C benchmark工具的使用
TPC-C是业界常用的一套benchmark,由TPC委员会制定发布,用于评测数据库的联机交易处理(OLTP)能力。主要涉及10张表,包含五类业务事务模。TPC-C测试指标为tpmC,每分钟处理订单交易的数量。值越大表示数据库性能越优。本文介绍使用BenchmarkSQL5.0 来测试opengauss数据库OLTP性能的步骤,以及htop iostat两个服务器性能监控工具。原创 2022-01-03 11:13:21 · 5554 阅读 · 0 评论 -
国产数据库OpenGauss--file_fdw的实践
dw (Foreign Data Wrapper) 是一种外部访问接口,被用来访问存储在数据库外部的数据,这些数据可以是外部的pg数据库,也可以oracle、mysql等数据库,甚至可以是文件。本文讲解如何通过file_fdw,访问外部的数据文件。原创 2021-12-31 22:15:00 · 866 阅读 · 0 评论 -
国产数据库OpenGauss--内存优化表(MOT)实践
MOT即Memory-Optimized Table,是openGauss数据库最先进的生产级特性(Beta版本),它为事务性工作负载提供更高的性能。MOT在高性能(查询和事务延迟)、高可扩展性(吞吐量和并发量)以及高资源利用率(某些程度上节约成本)方面拥有显著优势。企业可以在关键任务、性能敏感的在线事务处理OLTP中使用MOT,以实现高性能、高吞吐、可预测低延迟以及多核服务器的高利用率本文是针对OpenGauss 内存优化表MOT的实践记录原创 2021-12-31 21:15:00 · 3809 阅读 · 5 评论 -
国产数据库OpenGauss--在CentOS7.x系统中安装单节点集群、验证及简单数据管理
openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型数据库。产品: OLTP、企业级特性、自研比例超80% u使用场景: 国产化领域,普遍适用于各行业的交易 系统 u社区: 开放代码、开源社区、共治共享 u知识产权: 木兰宽松许可证,无重大知识产权风险 u风险: 代码完全国人管控,彻底解决断供风险本文针对在CentOS7.x系统中安装单节点集群、验证及简单数据管理进行总结原创 2021-12-30 19:45:00 · 2670 阅读 · 0 评论 -
数据库国产化--企业级分布式关系数据库 OceanBase 架构初探
最近业务上想将数据库国产化,同时解决基础业务数据快速增长,基本单库单表无法支撑的问题,所以针对阿里开源的OceanBase进行了调研。发现OceanBase内实现的核心技术如下(可能有遗漏,欢迎各位补充)用Multi-Paxos 协议实现 Commit Log (事务日志)的多机持久化,实现表分区级的Paxos 复制组,实现高可用和强一致性。【注意:CLog的存储目录需要是SSD盘】数据存储基于 LSM Tree 架构,将数据分为静态基线数据(放在 SSTable 中)和动态增量数据,实现数据的高效原创 2021-11-09 21:15:00 · 4586 阅读 · 0 评论 -
MySQL--Centos7.x MySQL5.7.x忘记root密码的解决方法
以下解决方案,在Centos 7.x、MySQL5.7.x停止mysqlservice mysqld stop以安全模式启动mysqlmysqld --user=mysql --skip-grant-tables --skip-networking &或修改配置文件my.cnf【在[mysqld]下面添加skip-grant-tables】,然后通过service mysqld start启动修改密码mysql -uroot -pselect authentication_原创 2021-11-08 21:15:00 · 397 阅读 · 0 评论 -
SqlServer 特有的SQL语法(查询版本、分布,查看系统表等等)
查看版本信息select @@versionMicrosoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)Aug 22 2017 17:04:49Copyright © 2017 Microsoft CorporationEnterprise Edition: Core-based Licensing (64-bit) on Windows Server 2012 R2 Standard 6.3 (Build 9600: ) (Hypervisor)原创 2021-09-02 16:47:25 · 586 阅读 · 0 评论 -
PostgreSQL--如何计算2个日期的秒数差值
在PostgreSQL中,如何计算2个日期的秒数差值呢?示例示例如下:status_changed_time、alarm_time 两个字段是timestamp类型'select status_changed_time,alarm_time,extract(epoch from (status_changed_time-alarm_time)) duration,date_part('hour',(status_changed_time-alarm_time)) as hour,date_par原创 2021-09-02 10:46:03 · 5186 阅读 · 0 评论 -
PostgreSQL教程--实现类似于MySQL的show create table功能
背景在MySQL数据库中,可以通过show create table查询表的create sql 语句,但在PostgreSQL数据库中,没有类似的命令,但可以通过function 来实现效果实现后,使用示例如下:select showcreatetable('public','xxl_job_qrtz_trigger_log');结果如下: CREATE TABLE xxl_job_qrtz_trigger_log ( id integer 0 PRI not null,原创 2021-08-24 17:51:43 · 4527 阅读 · 1 评论 -
PostgreSQL教程--逻辑结构:实例、数据库、schema、表之间的关系
1 PG的逻辑结构PG的逻辑结构详见下图:第一层是实例(Instance)。第二层是数据库(Database);一个实例下有多个数据库;每个数据库之间是完全独立的。第三层是Schema;数据库下面有多个Schema;其中“public” 是数据库创建时产生的。每个Schema下面可以创建表,视图,索引,函数,序列,物化视图,外部表等等。pg_class记录表和几乎所有具有列或者像表的东西。这包括索引(但还要参见pg_index)、序列(但还要参见pg_sequence)、视图、物化视图、组合原创 2021-08-13 17:50:28 · 8813 阅读 · 0 评论 -
PostgreSQL教程--系统表详解及常用SQL
1 系统表1.1 pg_classpg_ class 是数据字典最重要的一个表,它保存着所有数据表、视图、序列、索引【仍然需要参阅pg_index】、复合类型和一些特殊关系类型的元数据。每一个DDL/DML操作都必须跟这个表发生联系,在进行整库操作时经常使用到pg_class里面的东西,把它们整理出来,对数据库的了解有很大帮助。名字类型引用描述oidoid表id。relnamename表、索引、视图等的名字。relnamespaceoidpg_na原创 2021-08-13 11:49:14 · 8277 阅读 · 0 评论 -
MySQL事务日志和二进制日志(redo log、undo log、binlog)
1. innodb事务日志innodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。1.1 undo logundo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。innodb存储引擎对undo的管理采用段的方式。rollback segment称为回滚段,每个回滚段中有1024个undo log se原创 2021-08-05 16:55:41 · 946 阅读 · 0 评论 -
B-Tree、B+Tree的异同及用途
产生的背景二叉查找树的查找的时间复杂度是O(log N),查找效率已经足够高,那为什么还有B树和B+树的出现呢?原因是:树和B+树的出现是因为磁盘IO。当在大量数据存储中,二叉查找树查询时不能将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点,造成大量磁盘IO操作(最坏情况下为树的高度)。平衡二叉树由于树深度过大而造成磁盘IO读写过于频繁,进而导致效率低下。所以,为了减少磁盘IO的次数,就你必须降低树的深度,将“瘦高”的树变得“矮胖”。一个基本的想法就是:每个节点存储多个元素摒原创 2021-07-26 14:51:26 · 709 阅读 · 0 评论 -
MySQL 聚簇索引与非聚簇索引的理解
1. 概念1.1. 聚簇索引聚簇索引是物理索引,数据表就是按顺序存储的,物理上是连续的。一旦创建了聚簇索引,表中的所有列都根据构造聚簇索引的关键列来存储,所有的记录行都根据聚簇索引顺序存储,如按照主键Id递增方式依次物理顺序存储在一张表上最多只能创建一个聚簇索引,因为真实数据的物理顺序只能有一种。对于聚集索引叶子结点存储了真实的数据行,不再有另外单独的数据页。从物理文件可以看出 InnoDB的数据文件只有数据结构文件.frm和数据文件.idb,其中.idb文件将数据和索引信息存储在一起。1.2.原创 2021-07-07 18:07:11 · 497 阅读 · 0 评论 -
MySQL--谈谈事务
1. 事务的特性关系型数据库(例如:MySQL、SQL Server、Oracle 等)事务都有 ACID 特性:原子性(Atomicity) :事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性(Consistency):执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;隔离性(Isolation):并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;持久性(Durabilil原创 2021-07-05 17:54:15 · 186 阅读 · 0 评论 -
MySQL 插入数据时如何不插入重复的数据
1. 业务场景针对一些基础业务数据如用户表,要保证主键Primary或Unique不重复,如果在插入时做判断,效率低且代码复杂。2. 实现方案基于MySQL数据库,实现方案有如下4种replace into 使用最简单,推荐on duplicate key update 可以根据业务需要,当数据重复时,指定更新的内容。有对应使用场景时使用insert ignore into 简单粗暴,可能会丢数据,不推荐实现的功能类似于insert ingore into, 且使用复杂,不推荐创建测试原创 2021-06-25 18:07:34 · 3245 阅读 · 2 评论 -
MySQL常用运维SQL
本文针对MySQL运维中常用的SQL语句进行整理,会持续更新中原创 2021-06-24 18:22:09 · 774 阅读 · 0 评论 -
MySQL 主键使用陷阱总结
1. 表的自增主键的陷阱我们知道MySQL表可以定义一个自增长的ID。但如果表的自增长ID用完了,再插入数据有什么问题。在MySQL中,表定义的自增值达到上限后的逻辑是:再申请下一个ID时,得到的值保持不变,所以达到上限后,再插入数据会报主键冲突测试如下:创建了一个用户表,id作为自增的主键,因为是unsigned类型,所以最大值是2^32 -1 = 4294967295,在第一次执行插入语句时,id是设置的4294967295,第二次插入时,id仍然是4294967295,所以主键冲突。原创 2021-06-09 11:30:12 · 573 阅读 · 0 评论 -
MySQL的KEY分区存在BUG,请慎用
1. 问题现象上个星期排查项目问题时,发现一个很奇怪的现象:项目使用mysql 5.7,有几个频繁操作的表,使用mysql 的key 分区,分区数是10、100,建表语句类似如下:CREATE TABLE `tbl_key_partition` ( `id` varchar(64) NOT NULL COMMENT 'id', `last_modify_time` datetime DEFAULT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`)原创 2021-04-09 17:51:48 · 944 阅读 · 0 评论