MySQL在大型只写表上的性能
提前谢谢你的回答,很抱歉我的英语不好,我不是以英语为母语的人 我们正在开发一款带有后端的手机游戏。在这个手机游戏中,我们有一个货币系统,我们跟踪每一笔交易以进行验证 为了读取用户余额,我们有一个中间表,其中用户余额在每个事务上都会更新,因此用户永远不会直接读取事务表,以减少高流量的负载 事务表是在后台办公室中不时唯一读取的 以下是事务表的架构:MySQL在大型只写表上的性能,mysql,sql,database,amazon-aurora,Mysql,Sql,Database,Amazon Aurora,提前谢谢你的回答,很抱歉我的英语不好,我不是以英语为母语的人 我们正在开发一款带有后端的手机游戏。在这个手机游戏中,我们有一个货币系统,我们跟踪每一笔交易以进行验证 为了读取用户余额,我们有一个中间表,其中用户余额在每个事务上都会更新,因此用户永远不会直接读取事务表,以减少高流量的负载 事务表是在后台办公室中不时唯一读取的 以下是事务表的架构: create table money_money_transaction ( `id` BIGINT UNSIGNED A
create table money_money_transaction (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
`userID` INT UNSIGNED NOT NULL,
`amount` INT NOT NULL,
`transactionType` TINYINT NOT NULL,
`created` DATETIME NOT NULL,
CONSTRAINT money_money_transaction_userID FOREIGN KEY (`userID`) REFERENCES `user_user` (`id`)
ON DELETE CASCADE
);
我们计划有很多用户,事务表可以增长到10亿行,所以我的问题是:
- 它会影响其他表的性能吗
- 如果数据库太大,无法装入RAM,MySQL是否进行了某种优化,只在RAM中存储读取次数最多的表
- MySQL能够正确地扩展到这十亿行吗?知道我们主要进行插入,唯一的索引是在id上(详细信息需要id),并且没有“批量插入”(此表上不会同时进行1M插入)
- 此外,我们在RDS服务器上,因此如果需要,我们可以切换到Aurora并尝试主-主或主-从复制。你认为在这种情况下会有帮助吗
2017年初,我研究了Aurora的基准测试,发现对于我们测试的应用程序来说,is不适合高写入流量。您应该始终为您的应用程序测试它,而不是依赖于互联网上某人的猜测。但我预测,目前形式的Aurora(大约2017年)将完全无法满足您所有的写工作负载。基本上这是一个日志记录表?你有没有在一切照旧的情况下阅读过这本书?因此,它真的需要外键约束吗?为什么适应RAM很重要(只有经常从中读取时才会缓存到RAM)。MySQL是否能够很好地扩展取决于您如何使用它,没有更多的信息,我们只能说“它可以,是的,但您可以表示它不…”,而不知道您将如何使用此表(您只描述了如何不使用它),不可能知道其他选项是否更适合您。您好,谢谢您的回答。实际上,这是一种日志表,只有当用户帐户有可疑活动时,我们才会读取它。此查询和数据完整性需要外键约束(如果用户要求,可以删除)。我可能表达得很糟糕,但我的问题的目的更多的是“MySQL是否会在RAM中存储更重要的表”,因此根据您的回答,这似乎是好的。您可能“想要”外键,但如果您关心写入此表的量,则不“需要”跟踪可疑活动的外键.Analysis不是BAU,如果您正在调查一个用户,您将知道该用户存在。如果您删除了一个用户,则可以在夜间或每周的批处理过程中清除孤立记录。等等,e