检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
SQL诊断结果中记录的行数远小于慢日志中的扫描行数 场景描述 RDS for MySQL实例在DAS界面执行SQL诊断时,SQL语句诊断结果中执行计划记录的行数远小于慢SQL日志中的扫描行数。 原因分析 在查询优化器决定使用全表扫描的方式对某个表执行查询的时候,执行计划的rows
慢日志显示SQL语句扫描行数为0 场景描述 查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将socketTimeout设置合理值。 父主题:
请参见查看性能指标。 创建只读实例专门负责查询。减轻主实例负载,分担数据库压力。 多表关联查询时,关联字段要加上索引。 尽量避免用select*语句进行全表扫描,可以指定字段或者添加where条件。 父主题: 性能资源类
其他使用问题 慢日志显示SQL语句扫描行数为0 SQL诊断结果中记录的行数远小于慢日志中的扫描行数 RDS for MySQL慢日志里面有毫秒级别的SQL 查看RDS存储空间使用量 错误日志报错The table is full 审计日志上传策略说明 自增字段取值 表的自增AUTO_INCREMENT初值与步长
长的SQL语句)。本文介绍导致慢SQL的原因和解决方案。 SQL异常 原因及现象 SQL异常的原因很多,例如库表结构设计不合理、索引缺失、扫描行数太多等。 您可以在控制台的慢日志页面,下载并查看执行缓慢的SQL,慢SQL的执行耗时等信息。具体操作,请参见查看或下载慢日志。 解决方案
长的SQL语句)。本文介绍导致慢SQL的原因和解决方案。 SQL异常 原因及现象 SQL异常的原因很多,例如库表结构设计不合理、索引缺失、扫描行数太多等。 您可以在控制台的慢日志页面,下载并查看执行缓慢的SQL,慢SQL的执行耗时等信息。具体操作,请参见查看或下载慢日志。 解决方案
state_duration DESC limit 10; 通过查询pg_stat_user_tables,排查数据库中存在的大量的全表扫描的表以及对应的SQL。 执行如下SQL获取存在大量全表扫描的表: select * from pg_stat_user_tables order by seq_tup_read
embedding <=> '[3,1,2]'; 通过内积得到最近邻 <#>返回的是负内积,因为Postgres只支持运算符上的ASC顺序索引扫描 SELECT * FROM items ORDER BY embedding <#> '[3,1,2]'; 进阶使用 计算距离 SELECT
例的CPU和内存规格。 多表关联查询时,关联字段要加上索引。 可以指定字段或者添加where条件进行查询,避免用select*语句进行全表扫描。 父主题: 性能调优
说明 监控项异常的处理建议 案例 CPU使用率 (%) 该指标用于统计测量对象的CPU使用率。 评估业务SQL的执行计划,添加索引避免全表扫描。 扩容CPU规格,满足计算型业务需求。 RDS for MySQL CPU使用率高的问题处理 内存使用率 (%) 该指标用于统计测量对象的内存使用率。
说明 监控项异常的处理建议 案例 CPU使用率 (%) 该指标用于统计测量对象的CPU使用率。 评估业务SQL的执行计划,添加索引避免全表扫描。 扩容CPU规格,满足计算型业务需求。 CPU使用率高问题定位及处理方法 内存使用率 (%) 该指标用于统计测量对象的内存使用率。 扩容实例规格,满足业务需求。
InnoDB逻辑读速率 登录实例,查看实话会话,发现大量会话在执行SELECT COUNT(*)。 EXPLAIN确认该SQL的执行计划,发现走全表扫描且单条扫描行数在35万+,其并未走索引。 进一步查看该表的表结构,发现该表仅对字段“is_deleted”添加了一个索引“IDX_XX_USER
体请参见管理实时会话。 多表关联查询时,关联字段要加上索引。 可以指定字段或者添加where条件进行查询,避免用select*语句进行全表扫描。 父主题: RDS for MySQL
请参见查看监控指标。 创建只读实例专门负责查询。减轻主实例负载,分担数据库压力。 多表关联查询时,关联字段要加上索引。 尽量避免用select*语句进行全表扫描,可以指定字段或者添加where条件。 父主题: 性能调优
分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图2 慢日志 在实例上对该表执行SHOW INDEX
p5的慢SQL。 图3 慢SQL数量排行Top5 在“慢日志明细”列表中查看慢日志信息。 通过SQL语句、数据库、客户端、用户、执行耗时和扫描行筛选出需要显示的慢日志明细。 单击“导出”,导出当前慢日志列表信息。 单击“查看导出列表”,在弹窗中查看历史导出记录。 图4 慢日志信息
Eye监控。 创建只读实例专门负责查询。减轻主实例负载,分担数据库压力。 多表关联查询时,关联字段要加上索引。 尽量避免用select*语句进行全表扫描,可以指定字段或者添加where条件。 父主题: 性能调优
String 执行时间。 lockTime String 等待锁时间。 rowsSent Long 结果行数量。 rowsExamined Long 扫描的行数量。 database String 所属数据库。 users String 账号。 querySample String 执行语法。
Access pattern字段解释 字段 说明 Index scans ratio 索引扫描/序列扫描的比率。 Index scans 每秒索引扫描次数。 Sequential scans 每秒顺序扫描次数。 表4 DML activity字段解释 字段 说明 Tuples inserted
Access pattern字段解释 字段 说明 Index scans ratio 索引扫描/序列扫描的比率。 Index scans 每秒索引扫描次数。 Sequential scans 每秒顺序扫描次数。 表8 DML activity字段解释 字段 说明 Tuples inserted