自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Postgresql体系架构(四)-内存结构

这个参数会被考虑在使 用一个索引的代价估计中,更高的数值会使得索引扫描更可能被使用,更低的数值会使 得顺序扫描更可能被使用。由于数据库会话一次只能执行其中的一个操作,并且 PostgreSQL不会同时运行许多操作,因此可以将maintenance work mem 的值设置为明显大于 work mem 的值。需要关注的是:每个排序操作都会消耗一个work_mem内存,并不是一个SQL消耗一个,因此,当您的系统中有大量的排序时,此值可适当调小,防止内存用尽。器,当前的数据库服务器可以提供多少的缓存空间。

2025-05-18 15:07:48 726

原创 Postgresql体系架构(三)-逻辑结构

分区表的分区本身也是表,主表不存储数据,分区表存储数据;list 分区以指定的分区值将数据存放到对应的分区上,然后把满足条件的行存放在该分区中, 最常见的是以某列值为分区条件,根据不同的列值存放在不同的分区。范围分区表一般指的一个分区的范围,然后把满足条件的行存放在该分区中,最常见的是以日 期做为分区条件,根据时间段分为不同的分区,存放不同时间段的数据。hash 分区将数据散列存储在各个分区上,以打散热点数据存放到对应的分区上,然后把满足条件的行存放在该分区中,最常见的是平均的把数据放在不同的分区。

2025-05-18 14:59:52 608

原创 Postgresql体系架构(二)-进程结构

其中,$PGHOME/bin/postgres 是数据库服务器的master 进程,其它诸如checkpoint, background writer,walwrite,autovacuum launcher,stats collector,logical replication launcher 都是由它fork的子进程。PostgreSQL采取的是在原数据块上进行保留旧的数据,并作标记,等到将来修改提交生效之后,旧的数据(dead tuple翻译为死元组)不需要的话,就得清理, 由该进程来完成。

2025-05-18 01:00:00 988

原创 Postgresql 体系架构(一)- 物理结构

如果一个表的列中可能存储相当大的项,那么该表就会有个与之相关联的TOAST表, 它用于 存储无法保留在在表行中的域值的线外存储。FSM 结构来管理数据页中的空闲空间,FSM是存在以_fsm为后缀的文件中的,每个表都 有一个对应的fsm 文件。主要的作用为,在我们对表中的行做了update, delete 后,这一行的 tuple 并不会马上被清理掉,pg会通过vacuum 操作将这些dead tuple 清理, vm文件的主要作用是显示占用tuple , 扫描的时候会跳过这些tuple。

2025-05-17 17:06:42 555

原创 postgresql 17编译安装详解与实战

-auth-local=authmethod 连接的本地用户指定在pg_hba.conf中使用的认证方法 这个选项为通过 Unix 域套接字连接的本地用户指定在pg_hba.conf中使用的认证方法 (local行)。此外,在具有大量WAL的数据库中,每个目录的WAL文件的绝对数量可以成为一个性能和管理问题。如果--locale-provider是内置的,那么必须指定--locale或--built –locale必须指定并设置为C或C.UTF-8。这也将是后来创建的任何数据库的默认编码,除非你覆盖它。

2024-11-24 23:11:52 1522

原创 Postgresql高可用-知识概要

同步多主机复制最适合大多数读工作负载,尽管它的最大优点是任何服务器都可以接受写请求,但不需要分区主服务器和备用服务器之间的工作负载,因为数据更改是从其中一个服务器发送的从服务器到另一个服务器,对于像random()这样的非确定性函数没有问题。bucardo是PostgreSQL数据库中实现双向同步的软件 可以实现PostgreSQL数据库的双master的方案 bucardo中的同步都是异步的是通过触发器记录变化,程序是perl写的 可以实现postgresql的多主复制、主从同步;每个服务器独立运行。

2024-11-18 12:54:18 1272 1

原创 postgresql表继承详解

Postgresql继承表研究

2022-06-10 20:45:00 3460 1

原创 不固定列动态行转列SQL

行转列应用

2022-06-07 18:55:48 3034 1

原创 一个sql优化案例

最近,公司上线一个新项目,但上线后没几天,数据库的性能问题尤为明显,其中一个较为特殊,查询缓慢,还经常导致应用端服务内存溢出而崩溃。原语句:SELECT media_id,ad_id,ad_name, advertiser_id,ad_modify_time, ad_create_time,`status`,opt_status,delivery_range,inventory_type,open_url,bid,budget,budget_mode,mm.smart_...

2022-05-31 21:03:56 492

原创 利用BETWEEN AND比较字符串获得一个首字母为 B 和 N 之间的数据问题

BETWEEN AND比较字符串一个问题CREATE TABLE customer(customer_id serial ,title char(4) ,fname varchar(32) ,lname varchar(32) NOT NULL,addressline varchar(64) ,town varchar(32) ,zipcode char(10) NOT NULL,phone varchar(16) ,CONSTRAINT customer_pk P...

2022-05-09 11:36:14 750

原创 MySQL虚拟列的详细讲解

MySQL运用虚拟列对where条件有函数的的优化MySQL5.7引入了Generated Column,所谓Cenerated Column,就是数据库中的某一列由其他列计算而得。MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上.

2021-01-26 10:55:24 17745 2

原创 Mysql 未确定函数优化

Mysql函数调用优化MySQL函数在内部被标记为确定性或非确定性。非确定性函数如:RAND()、UUID()等,如果给它的参数固定值,它可以对不同的结果返回不同的结果被调用。确定函数如POW(),log()等,如果给它的参数固定值,会返回同一个结果被调用。不确定性函数可能会影响查询性能。CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT, co_name VARCHAR(100), PRIMARY KEY(id));INSERT INTO t1(.

2020-11-06 20:06:58 254

原创 mysql 用户备份数据库权限

mysqldump 备份所需要的权限说明:1、对于table,mysqldump 最少要有select权限2、如果要产生一份一致的备份,mysqldump 要有lock tables权限3、对于view,mysqldump 要有show view权限4、对于trigger,mysqldump 要有trriger权限5、对于event,mysqldump 要有event权限创建用户并授权:create user dbbackup@localhost identified by '123456

2020-07-01 17:46:20 1332

原创 mysql left join中子表null值查询

与SQL标准相比, 语法 扩展了。后者只接受 table_reference ,而不是在一对括号内的列表。 如果我们将 table_reference 项目 列表中的每个逗号 视为等同于内部 联接,则这是保守扩展 。 例如:SELECT * FROM t1 LEFT JOIN(t2,t3,t4) ON(t2.a = t1.a AND t3.b = t1.b AND t4.c = t1.c)相当于: SELECT * FROM t1 LEFT ...

2020-06-30 19:06:53 1771

空空如也

空空如也

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

TA关注的人

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