标签: aurora

为什么在“创建数据库”命令中指定表空间时会出现 PostgreSQL 权限错误?

当我在 PostgreSQL 中创建一个数据库而没有明确指定默认表空间时,该数据库的创建没有问题(我以pgsys用户身份登录):

postgres=> 创建数据库rich1;
创建数据库
postgres=> \l+
                                                                            数据库列表
   姓名 | 业主 | 编码 | 整理 | 类型 | 访问权限 | 尺寸 | 表空间 | 描述
-----------+----------+----------+-------------+-- -----------+------------------------------------------------+ -----------+------------+------------------------ -------------------
 postgres | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7455 KB | pg_default | 默认管理连接数据库
 管理员 | 管理员 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin | 无访问权限 | pg_default |
 富豪1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7233 KB | pg_default …

postgresql permissions tablespaces aurora amazon-rds

16
推荐指数
1
解决办法
1万
查看次数

为什么 MySQL 中的 Insert-Ignore 如此昂贵?

TL; DR: 插入大量的行的无冲突快得多比(不)重新插入相同的行,BOTH使用INSERT IGNORE语法。

为什么是这样?我假设插入和“忽略”插入的索引查找成本相同,因为 MySQL 不知道传入的数据是否具有重复/冲突的数据(因此需要被忽略)......因此,索引发生在初始插入和被忽略的插入运行中。

此外,我认为“忽略”行应该是便宜的,因为它不需要任何磁盘写入。

但这绝对不是这种情况。

长版: 在这个问题中,我们使用 AWS 的 Aurora/MySQL 和LOAD DATA FROM S3 FILE语法来删除任何传输或性能变量。我们加载了一个与下面架构相对应的 4 兆行 CSV 文件,并加载了两次,每次都使用LOAD ... IGNORE.

请注意,该问题也发生在标准INSERT ... IGNORE,但使用批量行插入时。LOAD ... IGNORE这里的用途是将讨论引向测量结果的反直觉性质,而不是“如何执行大量被忽略的插入”。这不是这里的问题,因为已经制定了特定于域的方法。

在被测试的模型中,有一个三层索引:前两个是基数非常低的可枚举分类列,第三个列本质上是“实际”数据。为了简化这个问题,我只是坚持我目前的设置。

假设以下简单模式:

our_table:

id: basic auto-increment bigint, primary key
constkey1: varchar(50) -- this is a constant in the insert
constkey2: varchar(50) -- this is a constant in the insert
datakey:   varchar(50) -- this is pulled in …
Run Code Online (Sandbox Code Playgroud)

mysql index upsert aurora bulk-insert

7
推荐指数
1
解决办法
2671
查看次数

Amazon RDS Postgresql 中的 apgcc 架构是什么?

最近apgcc,在我们测试的 Aurora Postgresql 集群(欧盟西部地区)的每个数据库中都出现了一个名为的神秘新模式。它归rdsadmin帐户所有。它是什么,它来自哪里?

pgadmin 中的架构

我知道东京地区apgcc发布公告中提到了。Twitter透露,这也发生在其他人身上

postgresql aurora amazon-rds

7
推荐指数
1
解决办法
944
查看次数

Aurora / MySQL 5.6 进程列​​出了数千个处于“已清理”状态的线程

我有一个应用程序的扩展问题,它使用 Aurora 作为数据库并使用 Slick 作为 ORM。我不确定问题出在哪里,但我有一个与 MySQL/Aurora 相关的问题,我希望能对我的问题有所了解。

应用程序需要池中的大量连接,否则应用程序开始失败。但是,当我查看 INFORMATION_SCHEMA.PROCESSLIST 时,我可以看到大量处于“已清理”状态的线程。

我在一般状态列表中看不到“已清理” - https://dev.mysql.com/doc/refman/5.7/en/general-thread-states.html

“清理”到底是什么意思?(我可以猜测,但我找不到任何文档)

下面是线程总数与“已清理”中的线程数的计数

mysql> select count(*) from INFORMATION_SCHEMA.PROCESSLIST where STATE = 'cleaned up' order by time desc ;
+----------+
| count(*) |
+----------+
|    11982 |
+----------+
1 row in set (0.08 sec)

mysql> select count(*) from INFORMATION_SCHEMA.PROCESSLIST order by time desc ;
+----------+
| count(*) |
+----------+
|    12007 |
+----------+
1 row in set (0.08 sec)
Run Code Online (Sandbox Code Playgroud)

mysql aurora

5
推荐指数
1
解决办法
1万
查看次数

如何避免锁等待超时超过并提高 MySQL InnoDB 写入速度

我运行了一个产生 25 个线程的多线程客户端来进行并发 API 调用并将数据插入到 AWS Aurora 服务器。

一段时间后,我开始看到超时错误:lock wait timeout exceeded try restarting transaction.我们对运行 MySQL 5.6.10 的服务器运行相同的测试,并没有发生锁等待超时。

有没有办法避免这种超时?

在 AWS Aurora 服务器上,SHOW ENGINE INNODB STATUS显示:

---TRANSACTION 8530565676, ACTIVE 81 sec setting auto-inc lock
mysql tables in use 2, locked 2
LOCK WAIT 6 lock struct(s), heap size 376, 2 row lock(s), undo log entries 1
MySQL thread id 405, OS thread handle 0x2ae270b03700, query id 11045 10.50.101.56 app_migration
INSERT INTO contacts_contactaudit (action,
    contact_id,
    date_created,
    date_updated, …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance timeout aurora performance-tuning

5
推荐指数
1
解决办法
2万
查看次数

AWS Aurora 中的表锁过时?

我们有一个 AWS Aurora(MySQL 引擎,r3.large)用于测试迁移。

我们注意到几个查询似乎根本无法运行。当我跑

show engine innodb status;
Run Code Online (Sandbox Code Playgroud)

它报告有一个表被锁定:

2017-06-21 18:20:49 2aea8928a700 Transaction:
TRANSACTION 6093969, ACTIVE 0 sec updating or deleting
mysql tables in use 1, locked 1
16 lock struct(s), heap size 376, 6164 row lock(s), undo log entries 1
MySQL thread id 12219, OS thread handle 0x2aea8928a700, query id 8842803 10.127.0.24 root updating
delete from <tablename> where id=<id>
Foreign key constraint fails for table `mydb`.`<otherTable>`:
Run Code Online (Sandbox Code Playgroud)

这是一个java应用程序。我已经停止了 tomcat 实例,并验证了没有活动连接,但锁没有清除。

我查看了 information_schema(INNODB_LOCKS、INNODB_LOCK_WAITS 和 INNODB_TRX)中的几个表,但有 0 条记录。

这是极光问题吗?除了 AWS Support …

mysql innodb transaction aws aurora

4
推荐指数
1
解决办法
5394
查看次数

如何在 AWS Aurora Postgres 上启用强制 ssl?

在 AWS 提供 RDS Postgres 的直接 postgres 中,您可以通过将参数组项设置rds.force_ssl为 1来要求 SSL 。

这是根据 RDS postgres 文档:https : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL

但是Aurora Postgres没有这个参数项,也没有添加新参数的能力。如何为 Aurora 实例开启 require ssl?

我可以在 Aurora 版本中看到它支持 SSL:

create extension sslinfo;
select ssl_is_used();
select ssl_cipher();
Run Code Online (Sandbox Code Playgroud)

我可以选择通过 ssl 连接:

psql -h my-ssl-test1.cwzhlddlylx.us-east-1.rds.amazonaws.com -p 5432
-U myuser -d mydb sslrootcert=rds-ca-2015-root.pem sslmode=verify-full
Run Code Online (Sandbox Code Playgroud)

postgresql configuration aws ssl aurora

4
推荐指数
1
解决办法
5394
查看次数

SELECT COUNT(*) 返回错误结果

我在 RDS Aurora 上的 PostgreSQL 9.6.3 上看到了一些非常奇怪的行为。

我从某些查询中得到重复的结果:

=> select count(id) from foos where id = 'deadbeef';
 count 
-------
 2
(1 row)

=> select id from foos where id = 'deadbeef';
            id            
--------------------------
 deadbeef
 deadbeef
(2 rows)

=> select id, created_at from foos where id = 'deadbeef';
            id            |         created_at         
--------------------------+----------------------------
 deadbeef                 | 2018-01-01 10:00:00.000000
(1 row)
Run Code Online (Sandbox Code Playgroud)

(id 值、时间戳和表名已被混淆)

我在这张桌子或任何其他桌子上都没有桌子继承。

这似乎只影响恰好命中foos表上一个索引的查询。

因为这似乎与单个索引隔离,我想运行REINDEX 可能会解决这个问题。

但是,我不知道有多少索引表现出这种行为。

例如,这是通过不同索引对同一记录的类似行为:

=> select bar from foos where bar = 'qux';
                  bar                  
----------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

postgresql index unique-constraint aurora amazon-rds

4
推荐指数
1
解决办法
1769
查看次数

连接到 MySQL 后端 Aurora 集群时,MariaDB 和 MySql 驱动程序是否可以互换?

之前看到过类似的问题,但我没有得到足够的支持信息

有人知道这方面的新信息吗?

连接 AWS Aurora 集群 MySQL 实例时,可以使用 MariaDB 连接器(驱动程序)代替 MySQL 连接器(驱动程序)吗?

mysql mariadb jdbc aurora amazon-rds

3
推荐指数
1
解决办法
5700
查看次数

如何使用 join 和 order-by 优化此选择?

我们有两个表:

 CREATE TABLE `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `created` int(10) unsigned DEFAULT '0',
  `user_id` int(11) DEFAULT '0',
....
  `subject_id` int(11) unsigned DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `user_id` (`user_id`),
  KEY `created` (`created`),
  KEY `text_id` (`text_id`) USING BTREE,
  KEY `subject_id` (`subject_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=237542180 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT
Run Code Online (Sandbox Code Playgroud)

第二个:

CREATE TABLE `users` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `email` char(150) DEFAULT NULL,
  `reg_time` int(10) unsigned DEFAULT '0',
  `password` char(255) DEFAULT NULL,
...................
  `moderation` int(1) …
Run Code Online (Sandbox Code Playgroud)

mysql optimization order-by select aurora

2
推荐指数
1
解决办法
65
查看次数

我应该使用 UUID 还是整数主键来优化关系数据的大量写入?

我正在研究计算机视觉数据管道,但不确定如何构建我的数据库以优化写入。

我有大量的图像数据正在被持续收集。图像帧用于构建 1-3 秒的视频剪辑,由远程工作人员标记。工作人员为每个剪辑(使用我构建的 Web 应用程序)标记各种属性(剪辑是否包含对象 x?)。

我当前的管道生成视频剪辑并将它们发送到 S3。Amazon Aurora(与 MySQL 兼容)数据库用于跟踪每个图像帧、剪辑和相关标签。

“帧”表包含每个图像帧的条目,以及相关的元数据。

“剪辑”表包含每个剪辑的条目,具有字段“start_frame_id”,它是定义给定剪辑中“帧”表中第一帧的外键。远程工作人员从 S3 访问关联的剪辑,使用剪辑的 sha256 哈希作为密钥。

'labels' 表包含工作人员创建的每个标签的条目,并且与 'clips' 表相关。

“剪辑”和“帧”表都包含原始文件的 sha256 哈希值。

该数据库需要针对写入进行大量优化,因为帧和剪辑的数量将非常庞大(每天将添加大约 500K 帧,剪辑为 20fps)。所有上传到 S3 和写入数据库都是从本地机器完成的。

我构建的原型使用自动递增的整数作为主键。但是,这需要客户端以小块的形式执行数据库写入。由于每个剪辑都需要引用其起始帧,因此在提交剪辑之前,我必须提交给定剪辑的所有帧以获得第一帧的主键。此解决方案还使得以后添加仅插入写入副本变得棘手/不可能。出于这个原因,我正在讨论使用 UUID 而不是整数,但我知道这会导致连接的性能问题。

我应该使用 UUID 还是整数?

mysql aurora

1
推荐指数
1
解决办法
1733
查看次数