专注,勤学,慎思。戒骄戒躁,谦虚谨慎

just do it

导航

#

[置顶] 一些值得收藏的数据库知识链接

摘要: postgresql 技术内幕 https://www.jiangguo.net/c/42e/dn.html Postgresql Buffer pool设置: PostgreSQL 自己的 DB buffer & 与别的人的OS cache 之 回答问题:https://cloud.tencent 阅读全文

posted @ 2017-07-23 12:02 MSSQL123 阅读(667) 评论(2) 推荐(2) 编辑

2024年4月9日 #

redis 无盘复制(redis repl-diskless-sync)

摘要: 无盘复制的需求背景 redis在启动后自动生成一个唯一的标识符run_id,这个run_id在持久化的时候存在于RDB文件中(如果有启用RDB或者做了RBD备份操作),但是并不存在与AOF文件中(包括混合是持久化文件),如果下次重启从RDB加载数据,那么这个run_id可以保存。如果同时启用了RDB 阅读全文

posted @ 2024-04-09 20:53 MSSQL123 阅读(22) 评论(0) 推荐(0) 编辑

2024年1月29日 #

记一次MySQL从节点服务器宕机重启后,从节点出现主键冲突异常的处理

摘要: 环境 MySQL 5.7 非GTID模式多线程复制。 现象 某MySQL数据库从节点因故障宕机(因故障直接宕机,非正常关闭),重启之后发现复制状态异常,show slave的结果中Slave_SQL_Running为No,错误代码为1062 error code,从系统表performance_sc 阅读全文

posted @ 2024-01-29 20:04 MSSQL123 阅读(75) 评论(0) 推荐(0) 编辑

2024年1月17日 #

记一次SQLServer复制监控器(replication monitor)复制延迟数值为NULL的异常处理

摘要: 现象 在SQLServer复制(订阅发布),在正常运行的情况下,发布节点一直有写入,订阅节点也正常复制到了这些数据,但分发节点的复制监控器面板(replication monitor)无法看到部分发布对象的延迟信息。如下,经过重启SQLServer服务,重启SQLServer Agent服务,重启操 阅读全文

posted @ 2024-01-17 12:08 MSSQL123 阅读(65) 评论(0) 推荐(0) 编辑

2024年1月3日 #

对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型

摘要: 开始之前: 设计某数据库表结构的过程中,收到了一个另外令人感到意外的建议:对于字符型数据类型,数据库里统一使用varchar(max)来存储,也就是所有字符数据类型都用varchar(max)字段类型,理由是ORM写代码方便?是的,你没有听错,为了ORM中写代码方便,所以建议数据库中字符型字段全部使 阅读全文

posted @ 2024-01-03 21:39 MSSQL123 阅读(391) 评论(0) 推荐(0) 编辑

2023年12月18日 #

SQLserver AlwaysOn 提交模式与节点的可用性

摘要: 接上文:https://www.cnblogs.com/wy123/p/17905118.html,关于AlwaysOn主副本与辅助副本之间提交模式与安全故障转移的话题 参考AlwaysOn属性面板中的信息 1,主节点异步提交模式:如果主要副本配置为“异步提交模式” ,则从节点不管是同步或者异步,主 阅读全文

posted @ 2023-12-18 22:07 MSSQL123 阅读(159) 评论(0) 推荐(0) 编辑

2023年12月16日 #

SQL Server 2019 非域&非集群环境创建Always On “只读扩展可用性组”(read-scale)

摘要: 在 SQL Server 2016 (13.x) 及更早版本中,所有可用性组都需要群集。 群集用于提供业务连续性,实现高可用性和灾难恢复 (HADR)。 此外,配置次要副本以执行读取操作。 如果目标不是高可用性,配置和运行群集消耗了相当大的运营开销。 SQL Server 2017 (14.x) 引 阅读全文

posted @ 2023-12-16 21:03 MSSQL123 阅读(213) 评论(0) 推荐(0) 编辑

2023年12月12日 #

(译)MySQL中的slave_exec_mode 参数详解(MySQL从节点跳过复制错误的处理,sql_slave_skip_counter VS slave-skip-errors VS slave_exec_mode)

摘要: 原文地址:https://www.soughttech.com/front/article/7159/viewArticle 今天我偶然看到了参数slave_exec_mode。从手册中的描述可以看出,该参数与MySQL复制有关。它是一个可以动态修改的变量。默认为STRICT mode(严格模式), 阅读全文

posted @ 2023-12-12 20:22 MSSQL123 阅读(175) 评论(0) 推荐(0) 编辑

2023年12月8日 #

备份压缩 (SQL Server)

该文被密码保护。 阅读全文

posted @ 2023-12-08 13:21 MSSQL123 阅读(0) 评论(0) 推荐(0) 编辑

2023年9月7日 #

译:SQLServer 事务复制延迟诊断

摘要: 原文地址:https://www.mssqltips.com/sqlservertip/3598/troubleshooting-transactional-replication-latency-issues-in-sql-server/ 问题 我安装了几个SQL Server 2012实例的集群 阅读全文

posted @ 2023-09-07 08:47 MSSQL123 阅读(261) 评论(0) 推荐(0) 编辑

2023年8月30日 #

译:如何成功恢复TDE加密过的数据库

摘要: 原文地址: https://www.mssqltips.com/sqlservertip/3572/recovering-a-sql-server-tde-encrypted-database-successfully/ 问题: 我的任务是在具有敏感信息的SQL Server数据库上设置透明数据加密 阅读全文

posted @ 2023-08-30 08:34 MSSQL123 阅读(133) 评论(0) 推荐(0) 编辑

2023年1月6日 #

Python中使用yield实现迭代器

摘要: 遇到复杂数据处理逻辑,想到可以使用Python的yield迭代器可以优雅地实现,切实体验到了迭代器的好处,多数情况下,代码不够优雅,特别是多层循环嵌套的,都可以常使用迭代器重构。 1,减少内存的占用,正如yield的经典用途,不必把所需的数据一次性生成到内存中,可以分批生成2,明确函数职责,代码更优 阅读全文

posted @ 2023-01-06 10:42 MSSQL123 阅读(157) 评论(0) 推荐(0) 编辑

2022年12月5日 #

(译)MySQL中的直方图统计信息

摘要: 什么是直方图,在MySQL 8.0.3如何创建直方图?MySQL的直方图是如何影响执行计划生成的?创建直方图有哪些注意事项?直方图和索引对优化器的选择上有什么差异,又该如何选择?如何判断直方图对执行计划的影响?MySQL官方blog的这篇文章用非常具体的示例回答了这一系列问题,let's go。原文 阅读全文

posted @ 2022-12-05 11:10 MSSQL123 阅读(207) 评论(0) 推荐(0) 编辑

2022年8月12日 #

译:在Python调用线程中处理线程异常(如何在主线程中捕获子线程异常)

摘要: python多线程中,主线程中如果捕获子线程的异常,笔者查阅了相关资料,有一种方式是使用队列(queue)将子线程的异常写入队列,然后主进程中去遍历异常消息队列,这种方式不近需要额外引入一个q对象,要同时遍历队列和判断线程状态,实现上上非常丑陋,后来发现如下方式,通过继承threading.Thre 阅读全文

posted @ 2022-08-12 17:14 MSSQL123 阅读(3398) 评论(0) 推荐(1) 编辑

2022年4月7日 #

cluster:提升postgresql性能(译)

摘要: cluster概念澄清 postgresql中没有聚集索引的概念,表都是以堆(heap)的方式存在,可以认为数据在物理存储上是无序的。cluster:这里的cluster不是指多个机器的组成的集群,而是指表中数据行按照某种方式物理排序存储。是一种改变postgresql表的物理存储的一种方案。适应场 阅读全文

posted @ 2022-04-07 19:46 MSSQL123 阅读(476) 评论(0) 推荐(0) 编辑

2022年4月4日 #

PostgreSQL执行计划:Bitmap scan VS index only scan

摘要: 之前了解过postgresql的Bitmap scan,只是粗略地了解到是通过标记数据页面来实现数据检索的,执行计划中的的Bitmap scan一些细节并不十分清楚。这里借助一个执行计划来分析bitmap scan以及index only scan,以及两者的一些区别。这里有关于Bitmap sca 阅读全文

posted @ 2022-04-04 14:19 MSSQL123 阅读(1772) 评论(0) 推荐(0) 编辑

2021年8月15日 #

MySQL中的显式锁---MySQL用户级锁函数

摘要: 类似于postgresql的咨询锁,MySQL也有用户级锁函数,是一个比较有意思的东西,之前都没有注意过。优点:其特点是使用起来更加灵活与个性,相比MySQL隐式的行级锁不同,用户级锁函数使用的可控性更强,可以个性化指定“锁的名称”和锁的过期时间,以及探测锁的可用性等。缺点:与传统的隐式锁不同的是, 阅读全文

posted @ 2021-08-15 10:52 MSSQL123 阅读(377) 评论(0) 推荐(0) 编辑

2021年8月3日 #

使用Python装饰器的tenacity库实现异常重试机制

摘要: Python异常重试如果某些方法需要重试,之前都是自己在except里写代码,很多时候实现起来并不方便,而且复杂逻辑下大大增加代码量和影响可读性,尝试了一下tenacity库,重试机制非常简单易用且清晰,且比retrying库简洁很多。1,第一种常规方式,不借助第三方库,需要自行再except里写代 阅读全文

posted @ 2021-08-03 12:09 MSSQL123 阅读(283) 评论(0) 推荐(0) 编辑

2020年12月23日 #

Redis 6.0 多线程性能测试结果及分析

摘要: 单线程的Redis一向以简洁高效著称,但也有其阿喀琉斯之踵:阻塞!单个线程在最容易产生瓶颈的网络读写(Redis大key,也包括其他一些重量级的操作sort/sunion/zunionstore/sdiff,集中性的expired key清理,内存溢出的maxmemory-policy策略等)请求完 阅读全文

posted @ 2020-12-23 20:45 MSSQL123 阅读(3622) 评论(2) 推荐(4) 编辑

2020年12月4日 #

在Postgre中设置max_connections时,为什么需要使用连接池 (译)

摘要: 原文地址:https://www.enterprisedb.com/postgres-tutorials/why-you-should-use-connection-pooling-when-setting-maxconnections-postgres PostgreSQL是“世界上最先进的开源数 阅读全文

posted @ 2020-12-04 19:07 MSSQL123 阅读(3180) 评论(0) 推荐(0) 编辑

2020年11月19日 #

既然python的多线程是"伪多线程",那么多线程访问共享资源的时候,还需要线程锁吗

摘要: 最近处理的大多数任务都是基于python的多线程实现的,然而使用python逃避不开的一个话题就是,python的GIL(的全称是 Global Interpreter Lock)全局解释器锁是单线程的,那么是不是意味着python的多线程也是串行的?多线程对共享资源的使用就不需要锁(线程锁)了? 阅读全文

posted @ 2020-11-19 10:08 MSSQL123 阅读(1021) 评论(0) 推荐(0) 编辑

2020年11月10日 #

Debugging: MISCONF Redis is configured to save RDB snapshots(译)

摘要: 最近遇到应用程序客户端在往redis中写入数据的时候发生了一个这样一个错误:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that m 阅读全文

posted @ 2020-11-10 23:20 MSSQL123 阅读(689) 评论(0) 推荐(0) 编辑

2020年11月2日 #

MySQL集群故障转移的时候在基于python的客户端连接层自动failover实现

摘要: 数据库的集群或者是分布式,越来越成为一个趋势,对于相对较为年轻的Redis或者MongoDB集群,集群在不需要任何第三方工具,本身就可以完成高可用(自动故障转移),同时对应用程序非常友好,类似于Jedis、MongoCliet等客户端,应用端以“智能化”地判断读集群中节点的读写属性去访问数据,而无需 阅读全文

posted @ 2020-11-02 19:38 MSSQL123 阅读(530) 评论(0) 推荐(0) 编辑

2020年8月14日 #

postgresql中的咨询锁(advisory lock)

摘要: 咨询锁(advisory lock),有的地方翻译为顾问锁,作为Postgresql中一种特有的锁,关于对其介绍,仅从咨询锁的描述性定义来看,一开始还真的没明白这个咨询锁是干什么的。 暂时抛开咨询锁的概念,先说数据库中传统的锁机制。默认情况下的事务性锁,读/写会自动加锁,读/写完成后会自动解锁(加解 阅读全文

posted @ 2020-08-14 13:01 MSSQL123 阅读(5146) 评论(0) 推荐(0) 编辑

2020年8月10日 #

PostgreSQL Shared Buffers 全面指南(译)

摘要: 译者注:与MySQL设置innodb_buffer_pool_size = 80%左右的系统内存相比,也就是将操作系统大部分内存分配给Innodb的buffer pool的缓存管理机制不同,Postgresql采用数据库采用实例buffer和操作系统buffer双缓存(effective_cache 阅读全文

posted @ 2020-08-10 13:36 MSSQL123 阅读(4145) 评论(0) 推荐(1) 编辑

2020年8月5日 #

Postgres 日志监控:阻塞,死锁,Checkpoint 优化(译)

摘要: 原文地址:https://pganalyze.com/blog/postgresql-log-monitoring-101-deadlocks-checkpoints-blocked-queries 部分运维PostgreSQL数据库的人通常有很多工作要做,并且没有足够的时间来定期查看Postgre 阅读全文

posted @ 2020-08-05 13:43 MSSQL123 阅读(2607) 评论(0) 推荐(1) 编辑

2020年7月30日 #

PostgreSQL MVCC原理以及事务可见性对执行计划的影响

摘要: 先从上次遇到的一个执行计划相关的疑问入手,类似于select count(1) from table的查询,可以在即某些较小字段上的索引进行扫描来替代全表扫描来实现count优化,这是一个MySQL中传统的优化套路,但是在postgresql中类似场景总是会走全表扫描而不是预期的索引扫描,为什么同样 阅读全文

posted @ 2020-07-30 22:46 MSSQL123 阅读(1309) 评论(0) 推荐(0) 编辑

2020年7月28日 #

PostgreSQL执行计划概述

摘要: 执行计划个人理解是一个“点”,“线”,“面”的问题,关系数据库中执行计划是一个同质化的对象,串联起来还是比较容易掌握的,对于一条复杂的sql,所谓的点就是其中单个表的访问方式,线是表之间的连接\驱动顺序,面就是表与表之间的具体连接算法以及中间结果在内存缓冲区中的处理(类似于bitmap scan,中 阅读全文

posted @ 2020-07-28 23:23 MSSQL123 阅读(5280) 评论(1) 推荐(3) 编辑

2020年7月25日 #

PostgreSQL中的位图索引扫描(bitmap index scan)

摘要: 从MySQL的MRR开始 开始之前,先从MySQL入手,看一下MySQL中的MRR机制原理,也就是Multi-Range Read。MySQL中在按照非聚集索引的范围查找且需要回表的情况下,比如select * from t where c2>100 and c2<200;c2为非聚集索引。如果直接 阅读全文

posted @ 2020-07-25 17:32 MSSQL123 阅读(9363) 评论(1) 推荐(0) 编辑

2020年7月24日 #

PostgreSQL中三种自增列sequence,serial,identity区别

摘要: 这三个对象都可以实现自增,这里从如下几个维度来看看这几个对象有哪些不同,其中功能性上看,大部分特性都是一致的或者类似的。 1,sequence在所有数据库中的性质都一样,它是跟具体的字段不是强绑定的,其特点是支持多个对个对象之间共享。 sequence作为自增字段值的时候,对表的写入需要另外单独授权 阅读全文

posted @ 2020-07-24 13:12 MSSQL123 阅读(6851) 评论(0) 推荐(0) 编辑

2020年7月23日 #

PostgreSQL中的死锁和锁等待

摘要: 开始之前明确一下死锁和锁等待这两个事件的异同相同的之处:两者都是当前事物在试图请求被其他事物已经占用的锁,从而造成当前事物无法执行的现象不同的之处:死锁是相关session双方或者多方中必然要牺牲(回滚)至少一个事务,否则双方(或者多方)都无法执行;锁等待则不然,对于暂时无法申请到的锁,尝试持续地“ 阅读全文

posted @ 2020-07-23 13:43 MSSQL123 阅读(3787) 评论(0) 推荐(0) 编辑

2020年7月22日 #

Postgresql中最有用的扩展(Extensions)pg_stat_statements(译)

摘要: 原文地址:https://www.citusdata.com/blog/2019/02/08/the-most-useful-postgres-extension-pg-stat-statements/Postgresql的Extensions能够延伸,更改和推进Postgres的行为。怎么样?通过 阅读全文

posted @ 2020-07-22 22:52 MSSQL123 阅读(1792) 评论(2) 推荐(0) 编辑

2020年7月21日 #

Postgresql统计信息概述

摘要: 对于sql优化,除了索引之外,执行计划和统计信息是无法绕开的一个话题,如果sql优化(所有的RDBMS)脱离了统计信息的话就少了一个为什么的过程,味道就感觉少了一大半。刚接触Postgresql,粗浅地学习总结一下Postgresql相关的统计信息。 postgresql 进程模型 开始之前,有必要 阅读全文

posted @ 2020-07-21 17:44 MSSQL123 阅读(4499) 评论(1) 推荐(2) 编辑

2020年7月15日 #

您所不了解的Postgres 10功能:CREATE STATISTICS(译)

摘要: 原文地址:https://www.citusdata.com/blog/2018/03/06/postgres-planner-and-its-usage-of-statistics/,本文统一将原文中的“planner”译做“优化器” 如果您对Postgres进行了一些性能优化,则可能使用过EXP 阅读全文

posted @ 2020-07-15 21:56 MSSQL123 阅读(1215) 评论(0) 推荐(0) 编辑

2020年6月20日 #

MySQL中建表时可空(NULL)和非空(NOT NULL)的一些思考

摘要: 对于MySQL的一些个规范,某些公司建表规范中有一项要求是所有字段非空,意味着没有值的时候存储一个默认值。其实所有字段非空这么说应该是绝对了,应该说是尽可能非空,某些情况下不可能给出一个默认值。那么这条要求,是基于哪些考虑因素,存储空间?相关增删查改操作的性能?亦或是其他考虑?该理论到底有没有道理或 阅读全文

posted @ 2020-06-20 14:48 MSSQL123 阅读(6836) 评论(4) 推荐(2) 编辑

2020年5月29日 #

MySQL 8.0中的 explain analyze(译)

摘要: 原文地址:https://mysqlserverteam.com/mysql-explain-analyze/ MySQL 8.0.18刚刚发布(译者注:原文发表时间为October 17, 2019),它包含了一个全新的特性来分析和理解查询是如何执行的:explain analyze。 expla 阅读全文

posted @ 2020-05-29 22:45 MSSQL123 阅读(1240) 评论(0) 推荐(0) 编辑

2020年5月12日 #

MySQL 8.0中与DBA和运维人员相关的10大特性(译)

摘要: 原文地址:http://lefred.be/content/top-10-mysql-8-0-features-for-dbas-ops/ 临时表的改进 MySQL 5.7中,所有内部临时表都是在名为“ibtmp1”的惟一共享表空间中创建的。此外,临时表的元数据也将存储在内存中(不再存储在.frm文 阅读全文

posted @ 2020-05-12 21:18 MSSQL123 阅读(625) 评论(0) 推荐(0) 编辑

MySQL 8.0 InnoDB对即时加字段的支持(instant add column)(译)

摘要: 原文地址:https://mysqlserverteam.com/mysql-8-0-innodb-now-supports-instant-add-column/ 长期以来,即时DDL一直是最受欢迎的InnoDB功能之一。对于越来越大且快速增长的数据集,任何网络规模数据库中必须具备立即执行DDL的 阅读全文

posted @ 2020-05-12 19:33 MSSQL123 阅读(3144) 评论(0) 推荐(0) 编辑

2020年5月5日 #

redis 6.0 redis-cluster-proxy集群代理尝试

摘要: 伴随着Redis6.0的发布,作为最令人怦然心动的特性之一,Redis官方同时推出Redis集群的proxy了:redis-cluster-proxy,https://github.com/RedisLabs/redis-cluster-proxy 相比从前访问Redis集群时需要制定集群中所有的I 阅读全文

posted @ 2020-05-05 12:01 MSSQL123 阅读(11860) 评论(4) 推荐(2) 编辑

2020年4月29日 #

OOM导致MySQL服务被kill案例一则

摘要: 看到这个 故障分析 | MySQL OOM 故障应如何下手,想起来几天前也遇到一次MySQL服务因为OOM被杀掉的情况,记录一下 背景:一个测试环境,由于Centos系统上没有设置虚拟内存,运行的MySQL实例buffer_pool_size配置的不合理,运行了一个较大的查询后,产生了一个戏剧性的问 阅读全文

posted @ 2020-04-29 20:46 MSSQL123 阅读(978) 评论(0) 推荐(0) 编辑

2020年4月28日 #

MySQL 8.0的原子DDL非事务性DDL,绝大多数情况下,原子DDL仍旧是一个然并卵的特性

摘要: 首先声明一下:MySQL 8.0之后,依旧不支持DDL事务。原子性DDL与其说是一个MySQL8.0下的新特性,倒是不如说是修复了MySQL5.7 DDL 执行失败造成的bug。 什么是原子DDL:当执行DDL时,数据字典更新、存储引擎操作和二进制日志中的写操作被合并到一个原子事务中,该事务要么完全 阅读全文

posted @ 2020-04-28 20:34 MSSQL123 阅读(972) 评论(0) 推荐(0) 编辑