数据库
首页 > 数据库> > mysql-内存表上的Amazon RDS Max_data_length

mysql-内存表上的Amazon RDS Max_data_length

作者:互联网

我在RDS上运行的某些内存表出现了一个奇怪的问题.我不知道这是否是RDS,mysql 5.1.57特有的问题,或者我只是PEBKAC,但这是一个令人沮丧的下午.

不管我给max_heap_table_size赋予什么值,我的内存表始终停留在9360878的最大数据长度上.这是使用SHOW TABLE STATUS并仅通过在表中插入已知数据量确定的.

我尝试在RDS参数组中设置该值(即使将方法设置为即时,我也尝试过重新启动),并且尝试使用SET在查询行中设置该值.我已经尝试了从16 MB到16 GB的每个值,并且对max_data_length没有影响.

我也尝试过设置max_temp_table_size,尽管据我所知,它不应该与非临时内存引擎表一起使用.

谁能指出我正确的方向?我需要桌子能够容纳约150M.

解决方法:

避免使用内存表或临时表

由于MySQL不会将内存表或临时表写入磁盘,因此在尝试使用时间点还原RDS功能时,使用这些MySQL功能会引起问题.此操作依赖于能够通过回放在数据库上执行的操作来重新创建数据库实例的方法.如果在此播放期间某些操作依赖于不存在的信息(因为它从未提交到磁盘),则MySQL无法启动.如果在此RDS还原操作期间MySQL无法启动,则RDS会将数据库实例状态设置为incompatible-restore.

注意:由于创建MySQL只读副本的方式的性质,使用内存表或临时表也可能阻止成功创建RDS MySQL只读副本.

标签:amazon-web-services,amazon-rds,mysql
来源: https://codeday.me/bug/20191202/2085061.html