检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ing temporary、using filesort,如果有,说明该语句用到了临时表或临时文件,数据量大的情况下,会导致磁盘占用高。 解决方案 复杂查询语句导致磁盘打满,建议客户从业务侧优化响应查询语句,常见优化措施: 加上合适的索引。 在where条件中过滤更多的数据。 重写SQL,优化执行计划。
by的时候,尽量在合理的情况下设置可以包含所有依赖字段的索引,优化示例: 没有合适索引,导致需要用到临时表。 有合适的索引,不会使用临时表,直接走索引。 解决方案 在使用distinct或group by的时候,尽量在合理的情况下,创建可以包含所有依赖字段的索引。 父主题: SQL类
迁移到云上GaussDB(for MySQL)时,第一次执行同样的SQL语句,很可能是冷数据,就会访问较慢,但再次访问速度就会得到提升。 解决方案 该场景是正常现象,在同一个数据库中,我们经常会遇到第一次执行一条语句时很慢,但再次执行就很快,也是因为受到了buffer_pool的冷热数据原理的影响。
解官方文档。 当MySQL检查到死锁的表时,会进行事务的回滚。其影响范围不仅是某个表,还会影响外键所在的表,最终导致数据库相关操作变慢。 解决方案 建议排查并优化死锁表相关的业务,业务上合理使用外键,避免更新冲突,避免产生死锁。 父主题: 性能资源类
自增主键的字段取值达到上限,无法继续增长,导致新插入的数据生成的自增主键值与表中上一条数据相同,因为自增主键的值不可重复,插入失败报错。 解决方案 如果数据变化较多,表中实际数据量远小于自增主键的容量,则可以考虑将该表的数据全量导入新表,删除原表,然后rename将新表名改回原表
要的最大内存。如果IN后面的list非常大,使用的内存会超过定义的最大内存,会使得Range scan失效,从而引发查询的性能下降。如果想解决该问题,可以调大允许使用的最大内存,但是该内存是session级别的,也就是说每个session进行该查询都会占用同样的内存,所以容易引发
历释放page的过程中会去获取page所在索引根节点的SX锁,导致select语句无法获取到根节点page的rw-lock,一直在等待。 解决方案 该场景为正常现象,等待purge操作完成后即可恢复正常。 扩大实例规格,提高purge效率。 调整优化业务,避免突然删除大量数据。如
不可用。目标实例引擎类型、版本号、表名大小写敏感要求与原实例相同。 如果恢复到已有实例后,已有实例的原密码无法连接到数据库,可通过重置密码解决。 开启过备份加密的实例不支持恢复到已有实例。 请确保目标实例的存储空间大于或等于原实例的存储空间,否则会导致任务下发失败。 操作步骤 登录管理控制台。
information_schema.tables where table_schema='db_name' and table_name = 'table_name'\G 解决方案 针对表空间膨胀的问题,可以进行表空间优化整理,从而缩小空间,执行如下SQL命令: optimize table table_name;
tables where table_schema='db_name' and table_name = 'table_name'\G; 解决方案 针对表空间膨胀的问题,可以进行表空间优化整理,从而缩小空间,执行如下SQL命令: optimize table table_name;
emoji表情为特殊字符,需要4字节字符集存储。 该问题场景下,数据库字符集为utf-8,它最多支持3个字节;utf8mb4才是支持4个字节的字符集; 解决方案 将存储emoji表情的字段的字符集修改为utf8mb4。 如果涉及的表和字段比较多,建议把对应表、数据库的编码也设置为utf8mb4。参考命令:
使用SSL无法连接上数据库。 原因分析 优先检查网络是否已经连通,如果不带SSL的连接方式可以连接,则可能是mysql client或对应的数据库驱动的版本不兼容。 解决方案 GaussDB(for MySQL)是兼容社区8.0以上版本的,需要使用8.0及以上版本的mysql client或数据库驱动。 SSL(Secure
总线程数,在大量建立连接时,总线程数计算方法:threadpool_size*(threadpool_oversubscribe+1)) 解决方案 对于存在大量新建连接,建议调大threadpool_oversubscribe增加线程总数。 减少线程重复创建与销毁部分的开销,提高
创建用户后用delete删除用户,再创建同名用户时报错ERROR 1396。通过执行flush privileges后,可正常创建同名用户。 解决方案 方式一(推荐):在业务低峰期,使用管理员账户执行drop user user_name删除用户,再重新创建该用户,修复该问题。 方式
_url”字段,如果执行DDL操作将“callback_url”修改为varchar(1024),会超出联合索引最大长度限制,所以报错。 解决方案 MySQL机制约束,建议修改索引或字段长度。 父主题: SQL类
不可用。目标实例引擎类型、版本号、表名大小写敏感要求与原实例相同。 如果恢复到已有实例后,已有实例的原密码无法连接到数据库,可通过重置密码解决。 开启过备份加密的实例不支持恢复到已有实例。 请确保目标实例的存储空间大于或等于原实例的存储空间,否则会导致任务下发失败。 操作步骤 登录管理控制台。
分析对应时间点的慢日志记录,该时间点有大量的多值批量插入语句,该插入方式会导致每个会话申请较多的SESSION级内存,并发高,很容易引起实例OOM。 图4 慢日志 解决方案 针对多值插入方式引起的OOM,建议减少单次插入数据量,分多次插入,且及时断开重连会话以释放内存。可执行show full proce
1版本,存在差异。进一步确认客户端TLS版本,与自建MySQL一致,因此出现连接自建MySQL成功,连接云上GaussDB(for MySQL)失败。 解决方案 客户端升级TLS版本到TLS v1.2。 如果使用官方JDBC驱动mysql-connector/J,可参考官方文档,配置方法: 父主题:
页面搜索避免使用左模糊(如:SELECT * FROM users WHERE u_name LIKE ‘%hk’)或者全模糊,避免从索引扫描退化为全表扫描,如果需要请在应用层解决。 索引文件具有B-tree的最左前缀匹配特性,如果左边的值未确定,那么无法使用此索引。 利用覆盖索引来进行查询操作,避免回表,但是覆盖索引加的字段不能太多,要兼顾写性能。
些场景中,用户往往对数据库规格要求不高,但也有一定业务连续性要求,不能通过不断创、删按需实例解决,即使购买较低配置的包周期实例,完全无负载的时间段稍长,仍显得成本浪费问题严重。 为了解决上述问题,GaussDB(for MySQL)推出了Serverless实例。Serverle