mysql从删库到跑路 亚马逊_Amazon RDS 上的 MySQL 的已知问题和限制 - Amazon Relational Database Service...
Amazon RDS 上的 MySQL 的已知问题和限制
下面给出了有关对 Amazon RDS 使用 MySQL 的已知问题和限制。
不一致的 InnoDB 缓冲池大小
对于 MySQL 5.7,管理 InnoDB 缓冲池的方式当前存在错误。MySQL 5.7 可能将 innodb_buffer_pool_size 参数的值调整为较大的值,这会导致 InnoDB 缓冲池增长得过大并占用过多内存。此效果会导致 MySQL 数据库引擎停止运行或阻止 MySQL 数据库引擎启动。可用内存较少的数据库实例类更易出现此问题。
要解决此问题,请将 innodb_buffer_pool_size 参数的值设置为 innodb_buffer_pool_instances 参数值和 innodb_buffer_pool_chunk_size 参数值的积的倍数。例如,您可以将 innodb_buffer_pool_size 参数值设置为 innodb_buffer_pool_instances 参数值和 innodb_buffer_pool_chunk_size 参数值的积的 8 倍,如以下示例所示。
innodb_buffer_pool_chunk_size = 536870912
innodb_buffer_pool_instances = 4
innodb_buffer_pool_size = (536870912 * 4) * 8 = 17179869184
索引合并优化返回错误结果
使用索引合并优化的查询可能因 MySQL 5.5.37 中引入的 MySQL 查询优化程序中的 Bug 而返回错误结果。当您发出针对一个带多条索引的表的查询时,此优化程序将基于多条索引扫描一系列行,但无法正确地合并这些结果。有关查询优化程序错误的详细信息,请转至
MySQL 错误数据库中的 http://bugs.mysql.com/bug.php?id=72745 和 http://bugs.mysql.com/bug.php?id=68194。
例如,假设发出针对一个带两条索引的表的查询,其中搜索参数会引用索引列。
SELECT * FROM table1
WHERE indexed_col1 = 'value1' AND indexed_col2 = 'value2';
在此情况下,搜索引擎将搜索这两条索引。但由于出现错误,导致合并结果不正确。
要解决此问题,您可以执行下列操作之一:
在 MySQL 数据库实例的数据库参数组中将 optimizer_switch 参数设置为 index_merge=off。有关设置数据库参数组参数的信息,请参阅使用数据库参数组。
将 MySQL 数据库实例升级到 MySQL 5.6、5.7 或 8.0 版。有关更多信息,请参阅 升级 MySQL 数据库快照。
如果无法升级实例或更改 optimizer_switch 参数,您可以通过显式标识查询的索引来纠正错误,例如:
SELECT * FROM table1
USE INDEX covering_index
WHERE indexed_col1 = 'value1' AND indexed_col2 = 'value2';
有关更多信息,请转至索引合并优化。
日志文件大小
对于 MySQL,写入到重做日志的 BLOB 存在大小限制。要解决此限制,请确保您的 MySQL 数据库实例的 innodb_log_file_size 参数是在您的表中找到的最大 BLOB 数据大小与同一表中其他可变长度字段 (VARCHAR、VARBINARY、TEXT) 的长度的和的 10 倍。有关如何设置参数值的信息,请参阅使用数据库参数组。有关重做日志 BLOB 大小限制的信息,请转至 MySQL 5.6.20 中的更改。
Amazon RDS 数据库实例的 MySQL 参数异常错误
某些 MySQL 参数在与 Amazon RDS 数据库实例一起使用时需要考虑一些特殊的注意事项。
lower_case_table_names
因为 Amazon RDS 使用区分大小写的文件系统,所以不支持将 lower_case_table_names 服务器参数的值设置为 2 (“按原样存储名称,但按小写字母进行比较”)。以下是 Amazon RDS for MySQL 数据库实例支持的值:
所有 Amazon RDS for MySQL 版本支持 0(“名称存储为给定名称,并且比较区分大小写”)。
Amazon RDS for MySQL 版本 5.5、版本 5.6、版本 5.7 和版本 8.0.19 及更高的 8.0 版本支持 1(“以小写字母形式存储名称,并且比较不区分大小写”)。
在创建数据库实例前,应将 lower_case_table_names 参数设置为自定义数据库参数组的一部分。您应该避免更改现有数据库实例的 lower_case_table_names 参数,否则可能导致时间点恢复备份与只读副本数据库实例不一致。
只读副本应总是使用与源数据库实例相同的 lower_case_table_names 参数值。
long_query_time
您可以将 long_query_time 参数设置为浮点值,这可让您将慢查询以微秒分辨率记录到 MySQL 慢查询日志中。您可以设置一个值(如 0.1 秒,也就是 100 毫秒),在调试时间不到一秒的慢事务时提供帮助。
Amazon RDS 中的 MySQL 文件大小限制
对于 Amazon RDS MySQL 数据库实例,最大预配置存储限制在使用 InnoDB file-per-table 表空间时将表的最大大小限制为 16 TB。此限制也将系统表空间的最大大小约束为
16 TB。默认情况下,为 Amazon RDS MySQL 数据库实例设置 InnoDB file-per-table 表空间 (表各自位于自己的表空间中)。
注意
某些现有的数据库实例具有下限。例如,在 2014 年 4 月之前创建的 MySQL 数据库实例的文件和表大小限制为 2 TB。不管创建数据库实例的时间如何,此 2
TB 文件大小限制也适用于从 2014 年 4 月之前创建的数据库快照创建的数据库实例或只读副本。
根据您的应用程序,使用 InnoDB file-per-table 表空间有一些优缺点。要确定适用于您的应用程序的最佳方法,请转至 MySQL 文档中的 File-Per-Table 表空间。
建议不要允许表增长到最大文件大小。一般而言,更好的方法是将数据分区到较小的表中,这可以提高性能并缩短恢复时间。
可用于将大型表划分为较小表的一个选项是分区。分区可基于您指定的规则将大型表的各个部分分布到单独的文件中。例如,如果您按日期存储事务,则可以创建分区规则,以便使用分区将较旧的事务分布到单独的文件中。随后您可以定期存档无需随时可供应用程序使用的历史事务数据。有关更多信息,请转至
MySQL 文档中的分区。
确定表的文件大小
使用以下 SQL 命令可确定任何表是否太大以及是否适合进行分区。
SELECT TABLE_SCHEMA, TABLE_NAME,
round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)"
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');
启用 InnoDB file-per-table 表空间
要启用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 1。
禁用 InnoDB file-per-table 表空间
要禁用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为 0。
有关更新参数组的信息,请参阅使用数据库参数组。
启用或禁用 InnoDB file-per-table 表空间后,可以发出 ALTER
TABLE 命令将一个表从全局表空间移至它自己的表空间,或从它自己的表空间移至全局表空间,如以下示例所示:
ALTER TABLE table_name ENGINE=InnoDB;
不支持 MySQL 密钥环插件
目前,Amazon RDS for MySQL 不支持 MySQL keyring_aws Amazon Web Services 密钥环插件。
mysql从删库到跑路 亚马逊_Amazon RDS 上的 MySQL 的已知问题和限制 - Amazon Relational Database Service...相关推荐
- MySQL从删库到跑路(5):in and not
"哈哈哈哈,看你这几天没来上课,我还以为你去拜什么高人为师了?原来就是这个烂番薯.臭鸟蛋的小卖部大爷学装逼,你逗我玩呢?哈哈哈哈哈" "哈哈哈哈,一个老屌丝,一个小屌 ...
- MySQL从删库到跑路(2):大爷的SQL私房菜
大爷的SQL私房菜 夜色如墨,月凉如水,一轮皎洁的圆月高高地挂在夜空之上,平日里鼾声如雷的室友今夜也停止了打鼾,如此静谧的夜晚,李有为却辗转难眠. 时间悄然来到凌晨一点半,他已经在窗边站了53分钟23 ...
- 2021最新版-AWS亚马逊云RDS创建Aurora MySQL集群
AWS亚马逊云RDS创建Aurora MySQL集群 文章目录 AWS亚马逊云RDS创建Aurora MySQL集群 1.进入AWS-RDS控制台创建数据库 2.选择你要创建的数据库 3.Amazon ...
- Mysql从删库到跑路(1)
文章目录 前言 初识Mysql mysql是啥呢 什么是数据库 DBMS 操作数据库 基本操作 数据库中的数据类型 操作数据表 列的一些其他属性 数据表的引擎 基本操作 总结 前言 终于放假了,前段时 ...
- MySQL从删库到跑路(三)——SQL语言
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.SQL语言简介 1.SQL语言简介 SQL是结构化查询语言(Structured Query Language) ...
- MySQL从删库到跑路
MySQL数据库指令集 增(insert) 不指定字段 insert into <表名> values(值1,值2,值3...); 指定字段(没给到值的字段为默认值或null) inser ...
- MySQL从删库到跑路(7):连接查询,用联系的观点看女神与渣男
"有为,能陪我说说话么?" 望着梨花带雨的女神,一时间李有为陷入了恍惚之中,尽管心里已经千万次告诫自己要远离面前的女人,可是当她真的出现在面前时,李有为的大脑早已一片空白. ...
- MySQL从删库到跑路(8):聚合函数——让我们来统计一下漂亮妹子的信息
"李有为,我且问你,human_base_info表面,颜值最高的妹子能有多高?" 听完大爷的话,李有为的嘴角情不自禁地绽开了一抹不易察觉的潇洒而自信的笑容,"大爷, ...
- MySQL从删库到跑路(9):group by——给漂亮小姐姐分个组
上回说到,李有为学会了五个聚合函数,自那以后,谁是这个世界上最漂亮的人,谁是这世界上最高的人,谁是这个世界上最重的人,都逃不过她的火眼金睛,然后大爷的一个问题又让李有为陷入了难题的泥沼当中,在这个花 ...
最新文章
- 仅需6步,教你轻易撕掉app开发框架的神秘面纱(2):MVP比MVC更好吗
- 最近的裁员事件告诉我们,录音笔太重要了!送10个给大家备用!
- python威氏符号秩次检验(Wilcoxon Signed-Rank Test)
- 第五周项目一-三角形类雏形(4)
- Jenkins+docker+maven+git自动化构建与部署
- Scala 中将方法、函数、函数式编程和面向对象编程关系分析图
- oracle无法创建监听器,关于Oracle net Manager中点击无法创建监听程序的解决方案
- Effective Java~35. 用实例域代替序数
- x光肺部分割数据集_吴恩达发布了大型X光数据集,斯坦福AI诊断部分超越人类 | AAAI 2019...
- tensorflow2 目标检测_一文了解YOLO-v4目标检测
- 每日一句20191105
- 工业机器人市场2018年热点回顾与2019年展望
- 史上最全法则、效应大全,看一遍受用终身!
- 【概率论与数理统计】猴博士 笔记 p38-40 切比雪夫不等式、大数定律、中心极限定理
- 自定义模型tensorboard画图命令报错 assert error assert isinstance(orig, torch.nn.Module)
- php/nginx重启命令
- 【数据结构和算法】图论—克鲁斯卡尔(Kruskal)算法详解
- 【综合类型第 10 篇】什么是时间戳
- 技术分享 | EdgeX应用落地——零售、能源行业创新业务
- QCAD与libreCAD的试用及比较,QCAD比libreCAD更好用,功能更强大
热门文章
- python 文件相似度分析_使用Python做人群相似度分析
- python复杂网络点图可视化_Python学习工具:9个用来爬取网络站点的 Python 库
- 苹果手机免密支付怎么取消_超市“扫码枪”有啥神奇功能?直接扫走你的资金,不用输入密码|移动支付|手机|免密...
- 数学rect什么意思_数学怎么审题?孩子必须知道的几个点!
- zynq tcp如何从网口发数据_基于TCP/IP协议的电口通信
- python输入数组_python怎么输入数组
- 加入收藏代码_100个原生JavaScript代码片段知识点详细汇总【实践】
- django框架 day06
- 换linux服务器 验证码不显示
- APICloud学习笔记之窗体跳转