为了方便各位小伙伴能够方便、快速的了解到 PolarDB 开源数据库的相关的使用问题,社区每周将精选群内高质量的问题通过该栏目予以统一答复,希望能够对大家有所帮助。
PolarDB for PostgreSQL 问答精选
1、
Q:PG 修改表 owner 会导致该 owner 之前授权的用户权限丢失吗?
A:不会。superuser 和 owner 都有权限给对象赋权给其他角色,但是系统中并不记录权限是谁赋予给谁的。
2、
Q: PG 数据库里安装 PostGIS,如果迁移数据库的话对 PostGIS 和数据是否会产生影响?
A: 如果是 pg_dump 的话没影响,如果是 pg_upgrade 两边 PostGIS 版本最好不要有大的差异。
3、
Q: PG 里怎么查看存储过程最近修改时间?
A: 不能查看,除非开启ddl审计日志。
PolarDB for PostgreSQL 已在 GitHub 开源,欢迎前往了解和支持:https://github.com/ApsaraDB/PolarDB-for-PostgreSQL
欢迎扫码加入钉钉群与我们一起交流 PolarDB for PostgreSQL,共建社区:
PolarDB-X 问答精选
1、
Q:请分析该拆分场景,以下这样是否合理? 需求:一个订单库,打算保留6个月数据,超过6个月的删除。
问题1:分库分表拆分函数中,有一个YYYYMM 可以实现 db 按照月拆分,这样比较方便按月整个库删除,压力会打到同一个db下?同一个 db 下就是同一个节点下?
问题2:假设同一个 db 不是同一个节点,进一步设计如下,想利用UNI_HASH来分散节点压力,不知道这样拆分是否合理:
dbpartition by YYYYMM(order_time)
tbpartition by UNI_HASH(order_id) tbpartitions 1000
问题3:如果想清理超过6个月的 db ,直接用 drop database db_name_yyyymm 删除吗?这样会不会影响GMS里元数据?
A:
1:这样的话最新的数据会路由到一个分区,容易形成热点。
2:确实这样分区的话删除比较方便,但还需要考虑(如有)全局二级索引索引的删除,也比较麻烦。
3:确实,这个是老版本分区语法。
5.4.13版本我们会在新版本分区表的基础上,做一个LocalPartition的功能。
可以将数据先按照正常的方式拆分,比如: partition by hash(id) partitions 256,然后在此基础上再做一个时间拆分,比如语法是:local partition by range(gmt_created) interval 1 month expire after 6。
数据过期后可以按照分区粒度,自动或者手动删除。
2、
Q:在云上购买时,PolarDB-X 2 只能选择MySQL 5.7,请问开源版是 5.7 还是 8.0 版本?
A:基于 MySQL 8.0,迁移了 5.7 上定制的能力。
3、
Q:docker stop 后再 restart,会导致数据不一致吗?
A: 这个是可以的,其实就是数据库的一次 crash recovery。如果想比较 graceful 的话,可以先连接到 dn 和 gms 节点,执行下shutdown语句。
PolarDB-X 已在 GitHub 开源,欢迎前往了解和支持:https://github.com/polardb/polardbx-sql
欢迎扫码加入钉钉群与我们一起交流 PolarDB-X,共建社区: