自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (6)
  • 收藏
  • 关注

原创 PostgreSQL模糊查询索引的使用

对于只有前模糊(%abc)的查询需求,使用collate "C"的reverse()表达式的b-tree索引;bill=# explain (analyze,verbose,timing,costs,buffers) select * from test001 where c1 like '%中国%';bill=# explain (analyze,verbose,timing,costs,buffers) select * from test001 where c1 like '%我是程序员%';

2024-04-25 14:53:34 262

原创 找出mongodb的jumbo块并进行分裂

从上面结果可以看出,chunks的数量增加了,但jumbo chunks的数量没有减少很多。因为大部分jumbo chunk是相同shard key组成的,所以无法继续分割。4、运行上一步骤的split命令。

2024-04-12 15:15:25 342

原创 mysql 磁盘空间100%

5. 事务提交,整个binlog cache和binlog临时文件数据全部写入到binlog file中,同时释放binlog cache和binlog临时文件。binlog cache和binlog临时文件都是在事务运行过程中写入,一旦事务提交,binlog cache和binlog临时文件都会释放掉。4. 如果binlog cache的空间已经满了,则将binlog cache的数据写入到binlog临时文件,同时清空binlog cache。如果binlog临时文件的大小大于了。

2024-04-03 17:49:54 667

原创 阿里云MongoDB 分片集群介绍

MongoDB分片集群技术用于解决海量数据的存储问题,本文介绍MongoDB分片集群相关的常用知识。

2024-03-19 20:36:35 872

原创 MongoDB ·sharding chunk 分裂与迁移详解

写入数据时,当 chunk 上写入的数据量,超过分裂阈值时,就会触发 chunk 的分裂,chunk 分裂后,当出现各个 shard 上 chunk 分布不均衡时,就会触发 chunk 迁移。如果使用 range 分片,因为 shardKey 的取值不确定,预分片意义不大,很容易出现部分 chunk 为空的情况,所以 range 分片只支持 hash 分片。mongoDB 的自动 chunk 分裂只会发生在 mongos 写入数据时,当写入的数据超过一定量时,就会触发 chunk 的分裂,具体规则如下。

2024-03-19 20:35:30 1187

原创 mysql 主从延迟分析

综合上面的分析,主从延迟的常见原因及解决方法如下图所示。

2024-03-14 15:46:24 1061

原创 MongoDB 中的锁分析

MongoDB 是一种常见的文档型数据库,因为其高性能、高可用、高扩展性等特点,被广泛应用于各种场景。在多线程的访问下,可能会出现多线程同时操作一个集合的情况,进而出现数据冲突的情况,为了保证数据的一致性,MongoDB 采用了锁机制来保证数据的一致性。下面来看看 MongoDB 中的锁机制。1、MongoDB 中使用一个 readers-writer 锁,它允许并发多个读操作访问数据库,但是只提供唯一写操作访问;

2024-03-14 15:28:01 524

原创 pgbench 性能测试工具介绍与使用

pgbench -i会创建四个表pgbench_accounts、 pgbench_branches、pgbench_history以及pgbench_tellers,如果同名表已经存在会被先删除。如果低于限流值(-R),延迟会相对于事务预定的开始时间(而不是实际的事务开始时间)计算,因此其中也包括了平均调度延迟时间。创建标准pgbench场景使用的表,即pgbench_accounts、pgbench_branches、pgbench_history以及pgbench_tellers。

2024-02-22 16:11:05 1172

原创 PostgreSQL导出导入

pg_dump -h连接串 -U读写用户 -F c -b -v -N public 库名 > all_sch_except_pub.backup。pg_dump -h连接串 -U读写用户 -F c -b -v -n hr -n payroll 库名 > hr_payroll.backup。pg_dump -h连接串 --schema=待导出schema名 --schema-only 库名 > fin_rw.sql。pg_dump -h连接串 -U读写用户 -C 库名 > dbname.sql。

2024-02-05 16:58:33 1452

原创 postgresql lc_ctype不同值之间的转换

将 LC_CTYPE 设为「C」表示 isupper(c) 或 tolower(c) 等 C 语言函数[2]仅针对 US-ASCII 范围内的字元给出预期结果。因此,在进行LC_CTYPE转换时,需要注意表格中是否有非 US-ASCII 字符,并在进行任何变动前后,建议需要根据实际环境用例及数据进行测试,以确定其影响。#数据库my_db_1的lc_ctype为en_US.UTF-8 : (与数据库my_db仅差在lc_ctype)

2024-02-01 15:25:04 633

原创 postgres 使用函数批量分段删除与写入

RETURN '删除成功!RETURN '插入成功';一、 postgres使用函数批量删除数据万级数据。二 、 postgres使用函数批量插入数据。-- 执行分段批量删除。-- 执行分段批量删除。

2023-12-27 21:42:59 420

原创 Redis报错:JedisConnectionException: Could not get a resource from the pool

一次命令时间(borrow|return resource + Jedis执行命令(含网络) )的平均耗时约为1ms,一个连接的QPS大约是1000,业务期望的QPS是50000,那么理论上需要的资源池大小是50000 / 1000 = 50个,实际maxTotal可以根据理论值合理进行微调。JedisPool默认的maxTotal=8,下面的代码从JedisPool中借了8次Jedis,但是没有归还,当第9次(jedisPool.getResource().ping())3、发生异常可能的情况。

2023-11-23 20:12:58 3423

原创 postgresql新增非空默认值字段是否需要重写表

PostgreSQL 10 版本前表新增不带默认值的DDL不需要重写表,只需要更新数据字典,因此DDL能瞬间执行,如下: ALTER TABLE table_name ADD COLUMN flag text;如果新增的字段带默认值,则需要重写表,表越大,执行时间越长,如下。

2023-11-22 16:13:06 582

原创 阿里云云盘IOPS与IO吞吐

实例的云盘吞吐量取上述公式三个值中的最小值。实例的IOPS取上述公式三个值中的最小值。备注:吞吐量如果达到上限,也会影响IOPS。当前仅在MySQL规格表中展示最大IO带宽。备注:IOPS如果达到上限,也会影响吞吐量。RDS PG主实例规格表。(存储空间单位:GB)最大IOPS计算公式。

2023-11-22 11:48:22 605

原创 postgresql视图的一些问题

针对上面的select * 创建的视图获取到基础表的所有字段内容,我们做一个测试,不难发现在基础表上新增字段后,对已建的视图是没有影响的,新的字段内容并不会自动添加到视图上。对于被视图引用的字段,是不允许被修改类型的,如果需要修改类型,需要先删掉视图,修改后再重建视图。可以看到修改基础表的字段名,对应视图的的字段名称没有自动同步过来,是没有生效的。同样,被视图引用的字段,是不允许被修改字段长度的。

2023-11-20 17:17:19 101

原创 postgresql逻辑复制槽的推进

【代码】postgresql逻辑复制槽的推进。

2023-11-10 17:31:20 443

原创 Redis会不会丢失数据

那么从上面的分析得出,其实我们每次执行客户端命令的时候操作并没有写到aof文件中,只是写到了aof_buf内存当中,当进行下一个事件循环的时候执行beforeSleep之时,才会去fsync到disk中,所以, 如果下一次事件监听前,服务器挂了,仍有可能丢失上一次的操作日志,无法保证零丢失。以上我们进行了初步的一些源码分析,细心的朋友可能会发现我们是在什么时候写入到aof_buf内存的呢,不要紧,我们继续上源码。//进行fsync操作,上面只是写入缓冲区了,并没有真正意义上的flush到disk。

2023-11-09 16:28:09 69

转载 Postgresql数据库安全性配置-密码

密码的配置命令可能会被记录到history文件及csvlog日志文件中(如果开启了DDL或更高级别审计log_statement),这些文件明文记录了密码,可能造成密码泄露风险。passwordcheck.so模块可以实现密码复杂度要求,此模块可以检查密码,如果密码太弱,他会拒绝连接。例如密码长度,包含数字,字母,大小写,特殊字符等,同时排除暴力破解字典中的字符串。创建用户或修改用户密码时,强制限制密码的复杂度,限制密码不能重复使用。pg支持密码有效期配置,可以通过配置密码有效期,制定密码更换周期。

2023-10-30 19:41:05 2013

原创 Amazon RDS 数据库实例存储

Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 Microsoft SQL Server 的数据库实例使用 Amazon Elastic Block Store (Amazon EBS) 卷进行数据库和日志存储。在某些情况下,您的数据库工作负载可能无法 100% 实现您预调配的 IOPS。有关更多信息,请参阅。有关实例存储定价的更多信息,请参阅。

2023-10-27 17:19:39 230

原创 postgresql序列

sequence类型的字段表,在使用CREATE TABLE new_table LIKE old_table的时候,新表的自增字段会已久指向原始表的sequence。2,identity本质是为了兼容标准sql中的语法而新加的,修复了一些serial的缺陷,比如无法通过alter table的方式实现增加或者删除serial字段。1,sequence在所有数据库中的性质都一样,它是跟具体的字段不是强绑定的,其特点是支持多个对个对象之间共享。##更改序列最大值为200。## 更改序列步长为50。

2023-10-27 16:47:02 348

原创 PostgreSQL 修改表字段常用命令操作

以上就是 PostgreSQL 修改表字段常用命令操作的完整攻略,希望对你有所帮助。为新设定的数据类型。

2023-10-24 16:38:59 6557

原创 postgresql 数据类型

smallint、integer(或者int)、bigint。对应的扩展是int2、int4、int8定点数numeric类型,这个用法如下,该类型是用在对于精确描述的数字上面,比如货币金额说明:precision:精度,就是小数点的左右共有多少个数字scale:刻度,就是小数点的右边有多少个数字比如:number(3,2):表示的就是2.12number(3):表示的就可以是整数:123number:表示的就不限制了:1233,432, 2212876注意:1.虽然该类型功能看着

2023-10-24 11:18:34 470

原创 Postgres统计信息的配置和校准

pg_class中统计有每个表和索引中含有的总记录数量——reltuples字段,以及每个表和索引对象在磁盘中占用的数据块数量——relpages字段。(5 rows)relkind表示对象类型,r表示表,i表示索引。出于效率考虑,reltuples和relpages字段并不会实时更新,会有一定的延迟。VACUUM(包括auto acuum后台任务)和ANALYZE操作可以更新表的统计信息。

2023-10-10 17:48:25 354

原创 PostgreSQL 12: 新增 pg_partition_tree() 函数显示分区表信息

对于一维分区表,PostgreSQL 提供的元命令足够查看分区的完整信息,但对于多维分区表,元命令无法查看详尽的分区信息,PostgreSQL 12 提供的分区函数很容易做到这点。尽管二维分区表的使用并不是很多,分区表函数提供了分区表查询的另一种途径。

2023-10-10 17:06:26 550

原创 Amazon ElastiCache for Redis 7 的新增功能

通过增强的 I/O 多路复用,每个专用网络 I/O 线程将命令从多个客户端传输到 ElastiCache for Redis 引擎中,利用 ElastiCache for Redis 高效批量处理命令的能力。然而,虽然 Redis OSS 管道批处理包括单个客户端的命令,但 ElastiCache for Redis 增强型 I/O 多路复用包括单个批处理中来自多个客户端的命令。通过增强的 I/O 多路复用,您将受益于增加的吞吐量和减少的延迟,而无需更改您的应用程序。在这种情况下,不会使用可用的 CPU。

2023-10-08 16:15:34 70

转载 系统稳定性建设

是否有分布式锁保障?这个阶段研发团队最希望拿到的需求是真正有业务价值的需求,而不是一个短期或临时的需求,因为如果是一个临时需求的话,往往对应的解决方案也是临时的,如果太多临时的解决方案遗留在系统中,久而久之将会变成巨大的“技术债”,总有一天会爆发,对系统稳定性及业务迭代速度造成巨大影响。而且有数据统计75%以上的线上case是由发版引起的,但是我们又不能不发版,那么我们能做的就是灰度,先发一部分机器上线,验证是否有问题,具体灰度的时间多久,可以视需求而定,确保新功能经过了线上流量充分验证之后,再进行全量。

2023-10-07 19:37:49 136

原创 Amazon RDS: Snapshot, restore, and recovery demystified

【代码】Amazon RDS: Snapshot, restore, and recovery demystified。

2023-10-07 15:58:41 49

原创 Optimize the cost of your Amazon ElastiCache for Redis workloads

【代码】Optimize the cost of your Amazon ElastiCache for Redis workloads。

2023-10-07 15:55:22 47

原创 postgresql 加密函数的使用

【代码】postgresql 加密函数的使用。

2023-09-28 15:52:15 380

原创 postgresql 备库terminating connection due to conflict with recovery的报错

当等待超过这个时间时, wal replay会cancel与之有冲突的所有query, 然后开始恢复, 并且必须要恢复到wal receive的位置和wal replay位置一致状态后才会重置max_standby_streaming_delay等待时间, 没有到达这个状态前, 所有与wal replay有冲突的query都会被直接cancel(不再有query执行窗口), 所以cancel query可能会很频繁的出现.如果有大查询, 特别是人工发起的大查询, 不要和小查询混到一个ro节点查询.

2023-09-28 15:27:00 484

原创 管理 PostgreSQL 中不区分大小写的数据

在执行查询或比较时,请务必注意 PostgreSQL 中文本数据的大小写敏感性,以确保结果符合您的预期。这可确保搜索不区分大小写,因此无论文本数据的大小写如何,您都可以找到匹配项。如果要搜索特定值而不考虑其大小写,则需要使用不区分大小写的比较函数或将数据规范化为一致的大小写。此外,如果表达式不存在,PostgreSQL 就无法使用表达式索引,因此您需要添加另一个索引以进行区分大小写的搜索。如果您只希望应用程序的一部分表现得不区分大小写,而不对应用程序进行任何更改,则可以将 设为 开关以使数据不区分大小写。

2023-09-27 15:33:49 1166

原创 Remove bloat from Amazon Aurora and RDS for PostgreSQL with pg_repack

【代码】Remove bloat from Amazon Aurora and RDS for PostgreSQL with pg_repack。

2023-09-27 12:32:56 38

原创 Amazon RDS 监控工具的注意事项

该工具还提供图形叠加、轴切换、数学计算、粒度更改(1、5 或 15 分钟)以及查看 CloudWatch 保留策略定义的历史数据(可追溯到几个月)等功能,这些功能非常有用识别 Amazon RDS 上的资源使用模式和客户行为。增强监控和 CloudWatch 都有自己独特的指标。增强监控用于获取有关运行数据库引擎的操作系统的高度精细的指标、隔离指标(cpuUtilization.nice、内存.free 等),并将日志记录到 CloudWatch 以供进一步分析和集成。

2023-09-27 12:31:14 91

原创 postgresql清理表空间(pg_repack)

pg_repack插件支持全表repack和索引repack。对整表数据进行repack的实现原理如下:创建日志表记录对原表的变更。在原表创建触发器,将原表的INSERT、UPDATE和DELETE操作记录到日志表中。创建新表,与原表的行列相同。在新表中创建索引。将日志表里的变更应用到新表。在system catalog交换新旧表。删除旧表。说明pg_repack会在第a、b步和第f、g步短暂持有ACCESS EXCLUSIVE锁。

2023-09-27 12:09:39 562

原创 Redis过期键失效延时的优化

关于Redis 6以下键过期效率不高的问题,twitter发现的,Redis作者最终在Redis 6做了改进和优化,并引入一个新的参数:active-expire-effort。该参数简要说明:该参数默认为1,过期周期尝试避免内存中有超过10%的已过期的key,同时避免过期的key占用超过25%的Redis内存和避免对系统造成延迟增加。调整该值为更大值,意味着,消耗更多CPU和更长的周期,都可能会增加Redis延迟。但与此同时Redis中已过期键但未被删除的数目会相对更少。

2023-09-21 16:31:10 61

转载 几款免费又好用的Redis可视化工具!

Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库。不过它公自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具,而且都针对REDIS做了一些优化,如自动折叠带schema的key等。这里推荐几款开源的图形化Redis客户端管理,非常的使用!对于前面介绍的8款redis可视化工具,我总结了一个表格,供大家参考和比较相信看到这里,你心里一定有答案了。

2023-09-04 15:40:31 1737

原创 PostgreSQL 闪回操作汇总

对于PG在线闪回,WalMiner 和 pg_dirtyread 是比较常用的,但由于pg_dirtyread需要前期做准备,且对PG的副作用比较大, WalMiner挖掘日志的方式反而更实用一些。PostgreSQL 闪回操作汇总 - 墨天轮。

2023-08-30 21:30:57 536

原创 PostgreSql删除重复数据的方法

可以看到,id相同的数据,保留ctid最小的,其他的删除。相当于把deltest表中的数据删掉一半,耗时达到67s多。可以看到同样是删除一半的数据,使用group by的方式,时间节省了一半。但仍含需要30s,下面试一下第三种删除操作。最容易想到的方法就是判断数据是否重复,对于重复的数据只保留ctid最小(或最大)的数据,删除其他的。group by方法通过分组找到ctid最小的数据,然后删除其他数据。可以看到,只要98ms。

2023-08-30 17:21:59 1200

原创 Linux 内存的一些记录

【代码】Linux 内存的一些记录。

2023-08-29 11:26:29 91

原创 使用 Amazon RDS 实施灾难恢复策略

创建只读副本时,Amazon RDS 首先拍摄源数据库实例的快照,然后创建只读实例。如果您将数据库快照复制到另一个 AWS 区域,您将创建保留在该 AWS 区域中的手动数据库快照。当您的数据库实例启用自动备份时,Amazon RDS 会自动执行数据的完整每日快照。当您启动时间点恢复时,事务日志将应用于最合适的每日备份,以便将数据库实例恢复到特定请求的时间。由于数据库快照包含整个数据库实例,包括数据文件和临时文件,因此实例的大小会影响创建快照所需的时间。还原数据库实例时,您选择要从中还原的数据库快照的名称。

2023-08-24 17:45:49 162 1

C#实例程序(可编译)

C#实例程序,源代码可被VS2005编译.里面有100多个实例。

2008-10-31

软件设计文档国家标准

软件设计文档国家标准,值得软件设计人员和开发人员学习。

2008-10-31

《C#案例开发》源代码

《C#案例开发》源代码 C#实例教程,一些不错的实例,适合开发者学习

2008-10-28

UML 高级进阶教程

非常不错的UML教程,且是清晰版,非影印,值得学习!

2008-10-27

windows Api 函数

(英文)500多个API函数的详细介绍,并且每个函数都配有一个示例,Cool!.rar

2008-10-23

调试好的系统C#源代码

调试好的系统C#源代码,有极好的参考价值

2008-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除