mysql的double write和postgresql的full_page_writes 一、什么是double write(双写)double write它针对的对象是脏数据,在将脏数据刷盘过程中产生。即一份脏数据写到共享表空间,一份写到真正的数据文件永久保存,也就是说写了两次的脏数据。所以称为double write。二、什么是postgresql的full_page_writesfull_page_writes是控制是否开启全页写入,默认开启。作用就是为了防止块折断活动损坏的一种策略。postgres=# show full_page_writes; full_page_writ
postgresql和mysql之间比较 一、事务隔离之间的比较事务隔离级别postgresqlmysql读未提交无法读脏数据有读已提交快照实现快照实现可重复读有,无幻读,发生冲突时,牺牲其中一个事务已实现,有幻读,悲观锁,因为Gap Lock问题,存在性能问题可串行化已实现,通过SSI实现,乐观锁,性能比较好悲观锁,S2PL,性能不好,实用性比较差二、持久化之间的比较持久化技术postgresqlmysql事务的持久化WAL日志binlog和innodb的
postgresql逻辑复制的搭建 postgresql有流式物理复制和逻辑主从复制,前者复制延时低,但是备库只读。而后者备库可读写,但是有较大的局限性,只能部分复制,数据容易出现不一致等问题。一、逻辑复制优缺点比较缺点:逻辑复制比较容易出错,效率也比较低,容易造成主从数据不一致的问题。而且只做部分复制,如表级别复制,而不是整个集群的块级别一致复制优势:备库可以读写,还可以指定的某个库或者某张表进行复制。同时也可以将的不同库的不同步同步复制到同一个数据库二、逻辑复制的搭建1.参数要求,wal_level值要为logical,修改该参
postgresql不同大版本之间的特性比较 一.不同大版之前分区改进pg9使用继承式分区,pg10实现了声明式分区,pg11完善了功能,pg12提升了性能不同版本在分区表上的性能改进版本新增特性pg91.继承式分区 2.手动添加触发器或规则pg101.声明式分区 2.分区索引手动创建,不能基于分区父表创建pg111.新增哈希分区 2.基于的分区表创建索引 3.支持update分区 4.会创建一个默认default分区 5.分区支持创建主键,外键,索引,触发器pg121.新增哈希分区 2.alte
pg_rewind数据同步工具 pg_rewind是postgresql主从数据库之间同步数据目录的工具pg_rewind只复制表数据文件中更改的块,所有其他文件都被完整复制,包括配置文件pg_rewind不需要读取数据库中未更改的块,在只有小部分不同的情况下,速度会很快用法:pg_rewind [option…]Example:sudo -u postgres /usr/local/pgsql/bin/pg_rewind --target-pgdata=/data/pg_data/data --source-server
git修改分支名称和terraform基本操作 一、git修改分支名称1.重命名本地分支git branch -m old_name new_name2.重命名远程分支## 删除远程分支旧名称git push --delete origin old_name## 重新推送新命名的本地分支git add .git commint --amend -m "new rename branch"git push origin new_name## 把修改后的本地分支与远程分支关联git branch --set-upstream-to
linux软链接和硬链接 一.ln命令的使用Usage: ln [OPTION]… [-T] TARGET LINK_NAME (1st form)or: ln [OPTION]… TARGET (2nd form)or: ln [OPTION]… TARGET… DIRECTORY (3rd form)or: ln [OPTION]… -t DIRECTORY TARGET… (4th form)参数说明参数说明-s, --symbolic创建
linux中的用户和用户组命令操作 1)groupadd命令Usage: groupadd [options] GROUP参数说明参数描述-f, --force如果组已经存在,则退出;如果GID已经被使用,则取消-g-g, --gid GID使用GID创建新的组-h, --help帮助信息-K, --key KEY=VALUE覆盖重写/etc/login.defs的默认值-o, --non-unique允许创建重复的组-p, --password PASSWORD新组的加密密
mysqlbinlog命令工具的使用 使用语法mysqlbinlog [options] log-files常用参数说明参数描述-?, --help帮助信息--base64-output=name输出格式,‘auto’:默认自动;‘never’:以binlog事件格式输出;‘decode-rows’:以注释方式输出pseudo-SQL-d, --database=name只列出该数据库的条目(只用本地日志)--bind-address绑定的IP地址-h, --host=name获取给定
postgresql锁 postgresql锁postgresql中根据不同的对象,不同使用场景,使用三种不同的锁,spinLock,LWLock,LockspinLock:自旋锁,是并发场景下,保护共享资源的有一种机制。实现的成本最低,一般是使用基于硬件的TAS(test-and-set)操作。SpinLock不能用于需要长久持有锁的逻辑,在postgresql中,spinlock主要用于对于临界变量的并发访问控制,所保护的临界区通常是简单的赋值语句来,读取语句等等。特点:申请锁的进程一直在额尝试能否加锁成功,只有等
mysql8.0+上被移除或替代的特性 1.mysql8.0被弃用的特性validate_password在未来新版本将被弃用alter tablespace和drop tablesapce engine被弃用pad_char_to_full_length的SQL模式被弃用在创建临时表中TABLESPACE = innodb_file_per_table and TABLESPACE = innodb_temporary被弃用2.mysql8.0中新参数/变量或表代替旧的参数/变量/表旧参数或表代替的参数或表u
linux的输出重定向 默认条件下,标准输出和错误输出都是终端,可以把标准输出和错误内容进行重定向一、重定向标准输出类型1)覆盖类型:> / 1>2)追加类型:>> / 1>># ll > aa.log# cat aa.logtotal 0-rw-r--r--. 1 root root 0 Mar 3 11:03 aa.log-rw-r--r--. 1 root root 0 Mar 3 11:03 aa.txt# echo -e "#20220303" &.
mysqldumpslow慢查询分析工具使用 使用语法Usage: mysqldumpslow [ OPTS… ] [ LOGS… ]常用参数参数描述-s排序方式,后面跟排序列-r反向排序-t返回记录数-a不将所有的数字抽象为N,字符串抽象为S-n NUM在名称中至少有n个数字抽象为数字-g正则匹配模式,大小写不敏感-v,--verbose详细执行信息-d,--debug调试模式排序方式:al:平均锁定时间ar:平均返回记录时间at:平均查询时间,默认c