PG-ep1
PG-ep1
常用的SQL语句
重置主键
select setval('schema.table_id_seq', max(id)) from schema.table;
不能直接对联接(join)后的结果进行更新。原因是更新操作需要明确的目标表,而联接通常涉及多个表。
对于sql的select查询fetch的时候必须要限制数量,直接select所有容易爆内存
sqlalchemy防止注入基本都做好了不用自己担心
where 的问题,大表的in小集合,是没有问题的,大表in大集合不行
不要对大表进行update,分布式MPP数据库的优势在于查询,而不是写入
踩坑
大表联查优化
硬件配置: CPU: arm64 内存: 250GB
cda-postgres-master:
image: "bitnami/postgresql:15"
hostname: cda-postgres
restart: always
ports:
- "25432:5432"
volumes:
- ./data/pg:/bitnami/postgresql
- ./data/pg-tmp:/tmp
environment:
POSTGRESQL_TIMEZONE: Asia/Shanghai
POSTGRESQL_USERNAME: ${CDA_USERNAME}
POSTGRESQL_PASSWORD: ${CDA_PASSWORD}
POSTGRESQL_DATABASE: postgres
POSTGRESQL_POSTGRES_CONNECTION_LIMIT: 100000
POSTGRESQL_MAX_PARALLEL_WORKERS_PER_GATHER: 16
POSTGRESQL_MAX_PARALLEL_WORKERS: 32
POSTGRESQL_MAX_WORKER_PROCESSES: 32
POSTGRESQL_SHARED_BUFFERS: 8GB
POSTGRESQL_MAX_CONNECTIONS: 1000
POSTGRESQL_WORK_MEM: 256MB
POSTGRESQL_WAL_BUFFERS: 64MB
POSTGRESQL_MAINTENANCE_WORK_MEM: 1GB
POSTGRESQL_EFFECTIVE_CACHE_SIZE: 16GB
shm_size: 4g
Last Edit: 2025-10-18 12:16:20
Loading...
