性能相关问题

最近更新时间:2019-05-15 14:32:35

为什么 MyISAM 引擎不能使用?

云数据库 MySQL 不支持 MyISAM 引擎的主要原因有如下几个:

  • MyISAM 不支持事务。
  • MyISAM 是表锁机制,并发支持不如 InnoDB。
  • 现在 InnoDB 已经完全可以替代 MyISAM,官方最新版本已经放弃了 MyISAM,不再使用。

云数据库 MySQL 执行任务时,为什么会卡死?

是并发操作导致的锁等待,属于正常现象。

高 IO 版、内存1000MB、硬盘45GB、1000 次/秒,MySQL 5.5 这里的1000次每秒指的是什么?

1000次/秒是每秒执行操作数,是增删改查的总数。

为什么查看云数据库中的中文数据时出现乱码?

您将数据存储到云数据库中时,请先到 MySQL 控制台 进入相应实例详情页面查看该实例的默认字符集。在编写程序时,将 character_set_clientcharacter_set_resultscharacter_set_connection 设置为和云数据库实例相同的字符集。否则,如果存储的数据中有中文,会出现中文数据乱码的现象。
例如:云数据库实例的默认字符集为 utf8,在编写程序连接数据库时,需要先执行以下语句,再将中文数据存储到云数据库。

SET NAMES 'utf8';

MySQL 连接数占用满了的常见原因和解决方法?

  • sleep 线程数很多,建议在控制台调低 wait_timeout 和 interactive_timeout 参数值。
  • 慢查询堆积,long_query_time 参数值默认10s,建议调成1s - 2s,观察慢查询日志。
  • sleep 线程数很少,也没有慢查询堆积,建议在控制台调大 max_connections 参数值。

MySQL CPU 占比过高的常见原因和解决方法?

  • 慢查询堆积,请查看实例监控上的慢查询和全表扫描,结合慢查询日志(控制台可下载)进行分析优化,若监控上没有慢查询只有全表扫描,建议在控制台将 long_query_time 调小至1s - 2s,使用一段时间后再分析慢查询。
  • 没有慢查询堆积,请查看实例监控上的内存占用,若超出实例规格很多,并且磁盘读写量明显增大,表明内存遇到瓶颈,建议升级内存。

如何查看 MySQL 慢查询日志?

MySQL 慢查询时间(long_query_time)的默认值是10s,在遇到性能问题时,若没发现有慢查询,建议调成1s - 2s再查看 。
在 MySQL 控制台,单击实例名称进入管理页,选择【数据库管理】>【参数设置】页,修改的变量如下:

变量 说明
long_query_time 超过该时间的查询为慢查询
在【操作日志】页查看并导出慢查询日志。