摘要:在引入super_read_only之前,mysql提供了一个选项read_only。开启read_only之后,会阻止没有super权限的用户执行数据库更新操作。read_only主要用于复制节点。super_read_only不仅会阻止普通用户,也会阻止具有super权限的用户对数据库写操作。r 阅读全文
pg_repack安装和使用
2021-04-03 12:33 by abce, 3356 阅读, 0 推荐, 收藏,
摘要:postgresql中使用pg_repack主要有三种原因: 1.大量删除记录后,从表中回收空闲空间给磁盘。 2.重新构建一个表,以重新排列记录,并将它们压缩/打包到更少的页。这可能会让查询的IO更少,性能更高。 3.从那些因为autovacuum设置不当,而导致过度膨胀的表中回收空闲空间。 pg_ 阅读全文
PostgreSQL的pg_stat_bgwriter视图
2021-03-31 16:50 by abce, 1418 阅读, 0 推荐, 收藏,
摘要:pg_stat_bgwriter视图提供了一组共享缓冲区写入方面性能数据。 =#select * from pg_stat_bgwriter; -[ RECORD 1 ] + checkpoints_timed | 15462 #计划检查点的发生次数,这种检查点是checkpoint_timeout 阅读全文
PostgreSQL的内存结构和调优
2021-03-29 11:34 by abce, 2021 阅读, 0 推荐, 收藏,
摘要:PostgreSQL的内存结构 PostgreSQL的内存主要分成两类: 1.本地内存区域:每个后端进程(backend process)自己使用的 2.共享内存区域:所有进程共同使用 本地内存区域 在postgresql中,每个后端进程(backend process)分配一片本地内存用于处理查询 阅读全文
PostgreSQL的内存利用率高时如何检查
2021-03-28 10:45 by abce, 1146 阅读, 0 推荐, 收藏,
摘要:如果内存利用率很高,那么首先应该确认哪个进程产生了内存消耗。 使用linux的top工具 找出哪些或哪个进程消耗了大量的内存。然后再检查进程在执行什么操作! 结合postgresql和系统的日志 比如,如果内存不够,可能会发现类似日志信息: Resource temporarily unavaila 阅读全文
如何调整PostgreSQL的 Out-Of-Memory Killer设置
2021-03-27 15:29 by abce, 1945 阅读, 0 推荐, 收藏,
摘要:当服务器/进程内存不足时,Linux有两种方法来处理,第一种是OS(Linux)崩溃,整个系统宕机;第二种是终止使系统耗尽内存的进程(应用程序)。第二种方法的最佳选择是终止进程,防止OS崩溃。简而言之,Out-Of-Memory Killer是负责终止应用程序以避免内核崩溃的进程,因为它只杀死应用程 阅读全文
postgresql的effective_cache_size
2021-03-26 08:29 by abce, 4172 阅读, 0 推荐, 收藏,
摘要:优化器假设可以用于单个查询的磁盘缓存的有效大小。这个因素会被用到使用索引的成本考虑中:值越大,使用索引扫描的可能性就越大;值越小,使用顺序扫描的可能性就越大。设置该参数的时候,需要同时考虑到shared buffer和内核对磁盘缓存的使用,尽管有些数据会同时存在shared buffer和内核的磁盘 阅读全文
MySQL的binlog_row_image和PostgreSQL的full_page_writes
2021-03-11 10:36 by abce, 538 阅读, 0 推荐, 收藏,
摘要:MySQL的binlog_row_image MySQL基于行的复制中,该变量决定了row images是如何被写入binary log的。在基于行的复制中,每一行的change事件包含两个镜像:一个“前镜像”,其列包含的是更新之前的内容;一个“后镜像”,其列包含更新之后的内容。通常,MySQL在前 阅读全文
PostgreSQL备份和还原的简单测试
2021-02-02 13:38 by abce, 259 阅读, 0 推荐, 收藏,
摘要:1.备份和还原单个数据库备份 $ pg_dump -U pogstgres -d mydb > mydb.sql 还原 $psql -U postgres -d mydb < mydb 2.备份和还原所有的数据库备份 $ pg_dumpall -U postgres > alldbs.sql 还原 阅读全文
PostgreSQL事务中的时间
2021-01-22 17:00 by abce, 555 阅读, 0 推荐, 收藏,
摘要:在同一个事务中,时间是不变的: postgres=# begin; BEGIN postgres=# select now(),current_time,current_timestamp,localtime,localtimestamp,transaction_timestamp(); now | 阅读全文
浙公网安备 33010602011771号