在此先感谢您的回答,对不起我的英语不好,我不是母语人士.

我们实际上正在开发一个带有后端的手机游戏.在这款手机游戏中,我们有一个货币系统,我们会跟踪每笔交易以进行验证.

为了读取用户余额,我们有一个中间表,其中在每个事务上更新用户余额,因此用户不会直接读取事务表,以减少高流量的负载.

事务表在后台中不时地被唯一地读取.

这是事务表的模式:

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并在需要时尝试主 – 主或主 – 从复制.你认为在这种情况下会有所帮助吗?

解决方法:

您可能会考虑MyRocks(参见http://myrocks.io),这是一个专为快速INSERT速度和压缩数据存储而设计的第三方存储引擎.我不会建议你切换到MyRocks,因为我没有足够的信息来为你的工作量做出明确的陈述.但我会建议您值得花时间来评估它,看看它是否适合您的应用程序.

If the database is too large to fit in RAM, does MySQL have some sort of optimisation, storing in RAM only the most read table ?

是的,MySQL(假设InnoDB存储引擎)将部分表存储在缓冲池中的RAM中.它将表分解为页面,并在查询请求时将页面放入缓冲池中.它就像一个缓存.随着时间的推移,请求最多的页面将保留在缓冲池中,其他页面将被逐出.因此,它或多或少地平衡了尽可能快地提供大多数查询.有关更多信息,请阅读https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool.html.

Will it affect the performance of other tables ?

表没有性能 – 查询具有性能.

缓冲池具有固定大小.假设您有六个表需要共享它们,它们的页面必须适合同一个缓冲池.无法为每个表设置优先级,或为某些表专用缓冲池空间或将它们“锁定”在RAM中.所有表的所有页面共享相同的缓冲池.因此,当您的查询请求来自各种表的页面时,它们确实会相互影响,因为来自一个表的频繁请求的页面可能会从另一个表中逐出页面.

Does MySQL will be able to scale correctly up to this billion row ?

MySQL有许多功能可以尝试帮助提高性能和可伸缩性(这些都不是一回事).同样,查询具有性能,而不是表.没有查询的表只是坐在那里.这是通过不同技术优化的查询.

Knowing we do mostly insert and that the only index is on the id (the id is needed for details) and that there is no “bulk insert” (there will not be 1M insert to do concurrently on this table)

索引会增加插入的开销.您无法消除主键索引,这是每个表的必要部分.但是,例如,您可能会发现删除包含索引的FOREIGN KEY是值得的.

通常,大多数表的读取次数比写入的多,因此值得保留索引来帮助读取(甚至使用WHERE子句的UPDATE或DELETE).但是,如果您的工作负载实际上都是INSERT,那么外键的额外索引可能是纯粹的开销,并且对任何查询都没有任何好处.

Also, we’re on a RDS server, so we could switch to Aurora and try a master-master or master-slave replication if needed. Do you think it would help in this case ?

我在2017年初开始研究Aurora的基准测试,发现对于我们测试的应用程序来说,对于高写入流量并不好.您应该始终为您的应用程序测试它,而不是依赖于互联网上某人的猜测.但我预测Aurora目前的形式(大约2017年)将完全扼杀你的所有写作工作量.

标签:mysql,database,sql,amazon-rds-aurora

来源: https://codeday.me/bug/20190627/1305312.html

mysql 写 性能,MySQL在大型,只写表上的性能相关推荐

  1. 进程P1、P2、P3共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写。进程可同时读F,但有进程写时,其他进程不能读和写。

    进程P1.P2.P3共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写.进程可同时读F,但有进程写时,其他进程不能读和写.要求:(1)正常运行时不能产生死锁.(2)F的并发度要高. ...

  2. mysql 查询包含1或者2_Mysql:同一个表上有2个不同的查询,包含count和group by

    我有一个表 entries ,其中包含以下列:id,email,sku,payment,created_at 我需要编写一些查询来对条目进行一些分析 . 我想要合并为一个的两个查询是: SELECT ...

  3. c++ mysql 配置_C++--mysql相关配置

    clion环境配置: windows下: 1. 在CMakeLists.txt里面添加 mysql的include目录和lib目录 cmake_minimum_required(VERSION 3.1 ...

  4. mysql外键写了会怎么样_mysql使用外键会影响性能吗

    推荐答案 孔雀丫丫 2015.04.10 采纳率:87%    等级:38 已帮助:18万人 外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束 ...

  5. mysql sqlserver对比_很用心的写了 9 道 MySQL 面试题

    MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储.锁.磁盘寻道.分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后 ...

  6. mysql 写磁盘_图解MySQL | [原理解析] MySQL insert 语句的磁盘写入之旅

    作者及简介: 黄 炎,爱可生首席技术官: 王 悦,爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案. 本文来源:转载自公众号-图解 MyS ...

  7. mysql大于等于怎么写_MySQL 对于千万级的大表要怎么优化?我写了6000字的深度解读...

    千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议. 从一开始脑海里开始也是火光 ...

  8. mysql写缓冲_MySQL 数据库的提速器-写缓存(Change Buffer)

    写缓存(Change Buffer) 是一种特殊的数据结构,用于在对数据变更时,如果数据所在的数据页没有在 buffer pool 中的话,在不影响数据一致性的前提下,InnoDB 引擎会将对数据的操 ...

  9. mysql双写是什么意思_MYSQL双写和块裂

    什么时块裂呢? 这就涉及到OS(操作系统)的原子写的大小,一般情况下OS原子写是4K,硬盘一个扇区是512字节,4K需要写8个扇区. 假如写了4个扇区发生了断电,或者其他的意外,那么不就是丢失了另外4 ...

最新文章

  1. MyRocks: 为facebool 的社交图谱服务的LSM-tree存储引擎
  2. 微信小程序客服功能 把当前页面的信息卡片发送给客服
  3. HTML5适应旧的浏览器的使用总结
  4. linux查看全连接队列大小,[TimLinux] TCP全连接队列满
  5. UGUI的优点新UI系统二 直观、易于使用
  6. 我治大学生抄作业毛病的办法——兼答丁又专老师
  7. Pool多进程的加速
  8. php fpm 不写errorlog,PHP-FPM不写入错误日志
  9. netpref 使用_使用PrefView监测.NET程序性能(二):Perfview的使用
  10. javascript的执行上下文
  11. 初探CSRF在ASP.NET Core中的处理方式
  12. 光纤耦合角度_一种光纤准直器的耦合找光方法与流程
  13. html加拼音注释,满江红岳飞全文带拼音(注释+译文)
  14. python游戏脚本 魔兽世界_浅析LUA中游戏脚本语言之魔兽世界
  15. xserver源码分析
  16. Mac怎么读写NTFS格式?Mac电脑重新安装NTFS卷
  17. Excel如何在表格内打勾
  18. 阿里云虚拟主机、企业邮箱免费申请
  19. 名人名言摘选-李嘉诚
  20. 含有非期望产出的ZSG-DEA模型

热门文章

  1. linux安装并管理mysql数据库
  2. postgres 备份 恢复
  3. linux c 实现函数 trim 除去字符串首尾空格
  4. python 全局变量 局部变量
  5. golang 面向对象编程
  6. Vivotek 摄像头远程栈溢出漏洞分析及利用
  7. linux docker 目录挂载映射
  8. 堆溢出DWORD SHOOT原理
  9. linux ELF文件格式分析
  10. TCP/IP详解--第五章